Techniques for extending the lifespan of playback devices

ABSTRACT

A computing system is configured to: after receipt of a request to initiate synchronous playback of media content on a plurality of playback devices via a communication interface, obtain the media content from a media source; generate playback timing information; transmit the media content and the playback timing information to the plurality of playback devices for playback in synchrony; while the plurality of playback devices play back the media content in synchrony and after receipt of respective playback rate information from at least one of the plurality of playback devices indicative of a rate of playback of the at least one playback device, (i) determine a modified sample rate of the media content for the at least one playback device based on the respective playback rate information; and (ii) cause the at least one playback device to play back the media content at the modified sample rate to maintain synchrony.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims priority to U.S. Provisional Patent ApplicationNo. 63/077,372, filed on Sep. 11, 2020, titled “Techniques for Extendingthe Lifespan of Playback Devices,” which is incorporated herein byreference in its entirety.

FIELD OF THE DISCLOSURE

The present disclosure is related to consumer goods and, moreparticularly, to methods, systems, products, features, services, andother elements directed to media playback or some aspect thereof.

BACKGROUND

Options for accessing and listening to digital audio in an out-loudsetting were limited until in 2002, when SONOS, Inc. began developmentof a new type of playback system. Sonos then filed one of its firstpatent applications in 2003, entitled “Method for Synchronizing AudioPlayback between Multiple Networked Devices,” and began offering itsfirst media playback systems for sale in 2005. The Sonos Wireless HomeSound System enables people to experience music from many sources viaone or more networked playback devices. Through a software controlapplication installed on a controller (e.g., smartphone, tablet,computer, voice input device), one can play what she wants in any roomhaving a networked playback device. Media content (e.g., songs,podcasts, video sound) can be streamed to playback devices such thateach room with a playback device can play back corresponding differentmedia content. In addition, rooms can be grouped together forsynchronous playback of the same media content, and/or the same mediacontent can be heard in all rooms synchronously.

BRIEF DESCRIPTION OF THE DRAWINGS

Features, aspects, and advantages of the presently disclosed technologymay be better understood with regard to the following description,appended claims, and accompanying drawings, as listed below. A personskilled in the relevant art will understand that the features shown inthe drawings are for purposes of illustrations, and variations,including different and/or additional features and arrangements thereof,are possible.

FIG. 1A shows a partial cutaway view of an environment having a mediaplayback system configured in accordance with aspects of the disclosedtechnology.

FIG. 1B shows a schematic diagram of the media playback system of FIG.1A and one or more networks.

FIG. 1C shows a block diagram of a playback device.

FIG. 1D shows a block diagram of a playback device.

FIG. 1E shows a block diagram of a network microphone device.

FIG. 1F shows a block diagram of a network microphone device.

FIG. 1G shows a block diagram of a playback device.

FIG. 1H shows a partially schematic diagram of a control device.

FIGS. 1I through 1L show schematic diagrams of corresponding mediaplayback system zones.

FIG. 1M shows a schematic diagram of media playback system areas.

FIG. 2A shows a front isometric view of a playback device configured inaccordance with aspects of the disclosed technology.

FIG. 2B shows a front isometric view of the playback device of FIG. 3Awithout a grille.

FIG. 2C shows an exploded view of the playback device of FIG. 2A.

FIG. 3A shows a front view of a network microphone device configured inaccordance with aspects of the disclosed technology.

FIG. 3B shows a side isometric view of the network microphone device ofFIG. 3A.

FIG. 3C shows an exploded view of the network microphone device of FIGS.3A and 3B.

FIG. 3D shows an enlarged view of a portion of FIG. 3B.

FIG. 3E shows a block diagram of the network microphone device of FIGS.3A-3D

FIG. 3F shows a schematic diagram of an example voice input.

FIGS. 4A-4D show schematic diagrams of a control device in variousstages of operation in accordance with aspects of the disclosedtechnology.

FIG. 5 shows front view of a control device.

FIG. 6 shows a message flow diagram of a media playback system.

FIG. 7 shows an example configuration of a media playback groupconfigured for synchronization.

FIG. 8 shows another example configuration of a media playback groupconfigured for synchronization.

FIG. 9 shows an example method of operating a device in a super groupcoordinator mode.

FIG. 10 shows an example method of operating a device in a lite groupmember mode.

The drawings are for the purpose of illustrating example embodiments,but those of ordinary skill in the art will understand that thetechnology disclosed herein is not limited to the arrangements and/orinstrumentality shown in the drawings.

DETAILED DESCRIPTION I. Overview

SONOS, Inc. has consistently bucked the trend of selling consumerelectronics with ever shorter lifespans before needing to purchase anewer version of the product. Instead of developing products onlyintended to last a matter of months, SONOS, Inc. has developed productsthat are intended to be enjoyed by listeners for years demonstrating acommitment to ethical and sustainable practices. Building consumerelectronics that are intended to be in the homes of users for such along period of time (e.g., multiple times the average lifespan ofconsumer electronics) brings about a host of unique technicalchallenges.

One technical challenge faced in designing products intended for use forlong periods of time is the ever increasing computational and memoryrequirements of modern software. For example, the processingrequirements for an Internet-Of-Things (IoT) device to execute thelatest (and most secure) version of software (e.g., an operating system,such as an operating system based on LINUX) typically increases witheach new version. In the context of playback devices, the computationaldemands (e.g., memory requirements, processor requirements, networkingrequirements, etc.) for the latest generation of player software areincreasing with the trend towards support for: (1) higher qualitystreaming audio (e.g., higher bitrate audio, more audio channels, etc.);(2) more streaming services; and (3) larger synchrony groups. In aconventional approach where users are frequently forced to upgrade theirconsumer electronic devices, the capability of the internal hardware issuccessively increased with each upgrade to match the increasingsoftware requirements. Further, those older consumer electronic devicesthat do not have the latest internal hardware (and no longer are capableof executing the latest instantiation of software) would have supportdiscontinued.

One approach to attempt to make products last for multiple years throughsuccessively increasing software demands would be to simply employ thehighest performing hardware internals available at the time. However,integrating the highest performing hardware internals available wouldunnecessarily increase the cost of the IoT device (e.g., to a pointwhere the price is unpalatable to consumers) and undesirably increasethe power consumption of the IoT device over the lifespan of the device.Further, incorporating the best hardware available is insufficient tofutureproof products beyond a few years at least because modern softwareis typically created to take advantage of new hardware designs. Forexample, the latest version of a given piece of software may be highlymulti-threaded so as to be optimized for the latest generation of highcore-count processors. In this example, the software may not be easilyexecuted by even the best lower core-count processor available just afew years prior.

SONOS, Inc. has appreciated that the computational demand for playbackmay depend on the particular role of the playback device in, forexample, a synchrony group. For example, to facilitate synchronousplayback, a playback device may be configurable to operate in (and/orswitch between) a group coordinator mode, a group member mode, and/or astandalone mode. While operating in the group coordinator mode, theplayback device may be configured to coordinate playback within thegroup by, for example, performing one or more of the followingfunctions: (i) obtaining audio content from an audio source, (ii) usinga clock (e.g., a physical clock or a virtual clock) in the playbackdevice to generate playback timing information for the audio content,(iii) transmitting portions of the audio content and playback timing forthe portions of the audio content to at least one other playback device(e.g., at least one other playback device operating in a group membermode), and/or (iv) playing back the audio content in synchrony with theat least one other playback device using the generated playback timinginformation. While operating in the group member mode, the playbackdevice may be configured to perform one or more of the followingfunctions: (i) receiving audio content and playback timing for the audiocontent from the at least one other device (e.g., a playback deviceoperating in a group coordinator mode); (ii) identifying a difference inclock time and/or rate between the clock time and/or rate of theplayback device and the clock time and/or rate of another device (e.g.,a group coordinator); (iii) converting a sample rate of the audiocontent from a first sample rate to a second sample rate (e.g., based onthe determined difference in clock time and/or rate); and (iv) playingthe audio content in synchrony with at least the other playback deviceusing the playback timing for the audio content. While operating in thestandalone mode, the playback device may be configured to perform one ormore functions from the group member mode and/or one or more functionsfrom the group coordinator mode. For example, a playback device may beconfigured to perform one or more of the following functions whileoperating in a standalone mode: (i) obtaining audio content from anaudio source; and (ii) playing the audio content.

While a playback device operates in a group coordinator mode and/or astandalone mode, a significant contributor to the computational burdenon the playback device may be caused by the software configured tofacilitate interaction with cloud servers associated with third-partymusic streaming service providers to obtain audio content. For example,the third-party music streaming service provider may provide third-partysoftware that is to be installed on the playback device to facilitateproper authentication with the cloud servers associated with thethird-party music streaming service provider to access audio content fora given user. Such third-party software is typically continually updatedby the third-party and may have ever increasing processing and/or memoryrequirements.

While a playback device operates in a group member mode, a significantcontributor to the computational burden on the playback device isattributable to asynchronous sample rate conversion (SRC) (e.g., tofacilitate synchronous playback). Asynchronous SRC may be employed tocompensate for a difference in clock rates of clocks on differentdevices (e.g., differences in clock rates between a playback devicedesignated as the group coordinator and a player designated as a groupmember). For example, the clock rate on a first device may be slightlydifferent (e.g., faster or slower) than the clock rate on a seconddevice due to any of a variety of factors (e.g., manufacturingdifferences, temperature, age, etc.). In order to compensate for suchdiffering clock rates during audio playback, asynchronous SRC may beemployed to dynamically adjust a number of samples in a given section ofaudio (e.g., such that the section of audio is played back at thecorrect rate when the samples are read into a digital-to-analogconverter (DAC) for playback).

Accordingly, aspects of the present disclosure describe techniques foradvantageously reducing the computational burden on a playback deviceduring playback when operating in any of a variety of modes (e.g., agroup coordinator mode, a group member mode, a standalone mode, or anycombination thereof). By reducing the computational burden on a playbackdevice during playback, the lifetime of a given playback device may beadvantageously increased. For example, the necessity to upgrade thehardware of the playback device in lock-step with software upgrades maybe removed.

In some embodiments, the computational burden on a playback deviceduring playback is mitigated by intelligently migrating one or morefunctions conventionally performed by the playback device (e.g.,operating in a group coordinator mode, a group member mode, and/or astandalone mode) to one or more other devices (e.g., cloud servers,other devices on a common local area network (LAN), etc.). For example,the functions typically performed by a group coordinator and at leastone of the functions typically performed by a group member (e.g.,calculating a difference in playback rates between the device andanother device) may be migrated to at least one other device not playingback the media content (e.g., an otherwise idle playback device on theLAN, a cloud server, etc.). In this example, the playback devicesperforming those functions of the group member not migrated to the otherdevice may operate in one or more new modes. Such new modes where aplayback device plays back audio with the support of at least one otherdevice not playing back audio are referred to herein as “lite modes,”such as a lite group member mode. In a lite group member mode, thecomputational burden on the playback device may be advantageouslyreduced without reducing the functionality of the playback device fromthe perspective of the user. Thus, older playback devices that, giventhe latest software update, can no longer function as a groupcoordinator or a group member can still be used in lite group membermode.

The at least one other device performing the functions of the groupcoordinator and at least one function of a group member may operate inone or more new modes referred to herein as “super modes,” such as asuper group coordinator mode. The device functioning in the super groupcoordinator mode may be a more powerfully device (and/or system) thatmay support one or more less powerful devices (e.g., older devices)operating in a lite group member mode. In some instances, the deviceoperating in super group coordinator mode may be local relative to thedevices operating in the lite group member mode. For example, a newstandalone device with the latest hardware may be purchased by anend-user and connected to their wireless local area network (WLAN), suchas their WIFI network, to enable support for one or more existingplayback devices on their WIFI network to function in lite groupcoordinator mode. In other instances, the device operating in supergroup coordinator mode may be remote relative to the devices operatingin the lite group member mode. For example, a user may subscribe to aservice that provides access to one or more servers (e.g., cloud-basedservers) functioning as super group coordinators that playback devicesconnected to a WLAN associated with the user may access via a wide areanetwork (WAN), such as the Internet.

With the creation of lite modes and super modes as described herein, theusable lifetime of a playback device may be advantageously increasedwithout substantially increasing the cost of such a playback device. Forexample, a new playback device may operate in one or more of a first setof operating modes that are more computationally burdensome (e.g., agroup coordinator mode, a group member mode, a standalone mode, and/or asuper mode variant of any of the preceding modes) and seamlessly betransitioned to a second set of operating modes that are lesscomputationally burdensome (e.g., a lite variant of any of a groupcoordinator mode, a group member mode, and/or a standalone mode) whenthe playback device no longer meets the computational requirements ofmodern software. As a result, a core level of functionality may bemaintained for a user well beyond the normal lifespan of typicalelectronic products.

While some examples described herein may refer to functions performed bygiven actors such as “users,” “listeners,” and/or other entities, itshould be understood that this is for purposes of explanation only. Theclaims should not be interpreted to require action by any such exampleactor unless explicitly required by the language of the claimsthemselves.

In the Figures, identical reference numbers identify generally similar,and/or identical, elements. To facilitate the discussion of anyparticular element, the most significant digit or digits of a referencenumber refers to the Figure in which that element is first introduced.For example, element 110 a is first introduced and discussed withreference to FIG. 1A. Many of the details, dimensions, angles and otherfeatures shown in the Figures are merely illustrative of particularembodiments of the disclosed technology. Accordingly, other embodimentscan have other details, dimensions, angles and features withoutdeparting from the spirit or scope of the disclosure. In addition, thoseof ordinary skill in the art will appreciate that further embodiments ofthe various disclosed technologies can be practiced without several ofthe details described below.

II. Suitable Operating Environment

FIG. 1A is a partial cutaway view of a media playback system 100distributed in an environment 101 (e.g., a house). The media playbacksystem 100 comprises one or more playback devices 110 (identifiedindividually as playback devices 110 a-n), one or more networkmicrophone devices (“NMDs”), 120 (identified individually as NMDs 120a-c), and one or more control devices 130 (identified individually ascontrol devices 130 a and 130 b).

As used herein the term “playback device” can generally refer to anetwork device configured to receive, process, and output data of amedia playback system. For example, a playback device can be a networkdevice that receives and processes audio content. In some embodiments, aplayback device includes one or more transducers or speakers powered byone or more amplifiers. In other embodiments, however, a playback deviceincludes one of (or neither of) the speaker and the amplifier. Forinstance, a playback device can comprise one or more amplifiersconfigured to drive one or more speakers external to the playback devicevia a corresponding wire or cable.

Moreover, as used herein the term NMD (i.e., a “network microphonedevice”) can generally refer to a network device that is configured foraudio detection. In some embodiments, an NMD is a stand-alone deviceconfigured primarily for audio detection. In other embodiments, an NMDis incorporated into a playback device (or vice versa).

The term “control device” can generally refer to a network deviceconfigured to perform functions relevant to facilitating user access,control, and/or configuration of the media playback system 100.

Each of the playback devices 110 is configured to receive audio signalsor data from one or more media sources (e.g., one or more remoteservers, one or more local devices) and play back the received audiosignals or data as sound. The one or more NMDs 120 are configured toreceive spoken word commands, and the one or more control devices 130are configured to receive user input. In response to the received spokenword commands and/or user input, the media playback system 100 can playback audio via one or more of the playback devices 110. In certainembodiments, the playback devices 110 are configured to commenceplayback of media content in response to a trigger. For instance, one ormore of the playback devices 110 can be configured to play back amorning playlist upon detection of an associated trigger condition(e.g., presence of a user in a kitchen, detection of a coffee machineoperation). In some embodiments, for example, the media playback system100 is configured to play back audio from a first playback device (e.g.,the playback device 100 a) in synchrony with a second playback device(e.g., the playback device 100 b). Interactions between the playbackdevices 110, NMDs 120, and/or control devices 130 of the media playbacksystem 100 configured in accordance with the various embodiments of thedisclosure are described in greater detail below with respect to FIGS.1B-1L.

In the illustrated embodiment of FIG. 1A, the environment 101 comprisesa household having several rooms, spaces, and/or playback zones,including (clockwise from upper left) a master bathroom 101 a, a masterbedroom 101 b, a second bedroom 101 c, a family room or den 101 d, anoffice 101 e, a living room 101 f, a dining room 101 g, a kitchen 101 h,and an outdoor patio 101 i. While certain embodiments and examples aredescribed below in the context of a home environment, the technologiesdescribed herein may be implemented in other types of environments. Insome embodiments, for example, the media playback system 100 can beimplemented in one or more commercial settings (e.g., a restaurant,mall, airport, hotel, a retail or other store), one or more vehicles(e.g., a sports utility vehicle, bus, car, a ship, a boat, an airplane),multiple environments (e.g., a combination of home and vehicleenvironments), and/or another suitable environment where multi-zoneaudio may be desirable.

The media playback system 100 can comprise one or more playback zones,some of which may correspond to the rooms in the environment 101. Themedia playback system 100 can be established with one or more playbackzones, after which additional zones may be added, or removed to form,for example, the configuration shown in FIG. 1A. Each zone may be givena name according to a different room or space such as the office 101 e,master bathroom 101 a, master bedroom 101 b, the second bedroom 101 c,kitchen 101 h, dining room 101 g, living room 101 f, and/or the patio101 i. In some aspects, a single playback zone may include multiplerooms or spaces. In certain aspects, a single room or space may includemultiple playback zones.

In the illustrated embodiment of FIG. 1A, the master bathroom 101 a, thesecond bedroom 101 c, the office 101 e, the living room 101 f, thedining room 101 g, the kitchen 101 h, and the outdoor patio 101 i eachinclude one playback device 110, and the master bedroom 101 b and theden 101 d include a plurality of playback devices 110. In the masterbedroom 101 b, the playback devices 110 l and 110 m may be configured,for example, to play back audio content in synchrony as individual onesof playback devices 110, as a bonded playback zone, as a consolidatedplayback device, and/or any combination thereof. Similarly, in the den101 d, the playback devices 110 h-j can be configured, for instance, toplay back audio content in synchrony as individual ones of playbackdevices 110, as one or more bonded playback devices, and/or as one ormore consolidated playback devices. Additional details regarding bondedand consolidated playback devices are described below with respect to,for example, FIGS. 1B and 1E and 1I-1M.

In some aspects, one or more of the playback zones in the environment101 may each be playing different audio content. For instance, a usermay be grilling on the patio 101 i and listening to hip hop music beingplayed by the playback device 110 c while another user is preparing foodin the kitchen 101 h and listening to classical music played by theplayback device 110 b. In another example, a playback zone may play thesame audio content in synchrony with another playback zone. Forinstance, the user may be in the office 101 e listening to the playbackdevice 110 f playing back the same hip hop music being played back byplayback device 110 c on the patio 101 i. In some aspects, the playbackdevices 110 c and 110 f play back the hip hop music in synchrony suchthat the user perceives that the audio content is being playedseamlessly (or at least substantially seamlessly) while moving betweendifferent playback zones. Additional details regarding audio playbacksynchronization among playback devices and/or zones can be found, forexample, in U.S. Pat. No. 8,234,395 entitled, “System and method forsynchronizing operations among a plurality of independently clockeddigital data processing devices,” which is incorporated herein byreference in its entirety.

a. Suitable Media Playback System

FIG. 1B is a schematic diagram of the media playback system 100 and acloud network 102. For ease of illustration, certain devices of themedia playback system 100 and the cloud network 102 are omitted fromFIG. 1B. One or more communication links 103 (referred to hereinafter as“the links 103”) communicatively couple the media playback system 100and the cloud network 102.

The links 103 can comprise, for example, one or more wired networks, oneor more wireless networks, one or more wide area networks (WAN) (e.g.,the Internet), one or more local area networks (LAN) (e.g., one or moreWIFI networks), one or more personal area networks (PAN) (e.g., one ormore BLUETOOTH networks, Z-WAVE networks, wireless Universal Serial Bus(USB) networks, ZIGBEE networks, and/or IRDA networks), one or moretelecommunication networks (e.g., one or more Global System for Mobiles(GSM) networks, Code Division Multiple Access (CDMA) networks, Long-TermEvolution (LTE) networks, 5G communication network networks, and/orother suitable data transmission protocol networks), etc. The cloudnetwork 102 is configured to deliver media content (e.g., audio content,video content, photographs, social media content) to the media playbacksystem 100 in response to a request transmitted from the media playbacksystem 100 via the links 103. In some embodiments, the cloud network 102is further configured to receive data (e.g. voice input data) from themedia playback system 100 and correspondingly transmit commands and/ormedia content to the media playback system 100.

The cloud network 102 comprises computing devices 106 (identifiedseparately as a first computing device 106 a, a second computing device106 b, and a third computing device 106 c). The computing devices 106can comprise individual computers or servers, such as, for example, amedia streaming service server storing audio and/or other media content,a voice service server, a social media server, a media playback systemcontrol server, etc. In some embodiments, one or more of the computingdevices 106 comprise modules of a single computer or server. In certainembodiments, one or more of the computing devices 106 comprise one ormore modules, computers, and/or servers. Moreover, while the cloudnetwork 102 is described above in the context of a single cloud network,in some embodiments the cloud network 102 comprises a plurality of cloudnetworks comprising communicatively coupled computing devices.Furthermore, while the cloud network 102 is shown in FIG. 1B as havingthree of the computing devices 106, in some embodiments, the cloudnetwork 102 comprises fewer (or more than) three computing devices 106.

The media playback system 100 is configured to receive media contentfrom the networks 102 via the links 103. The received media content cancomprise, for example, a Uniform Resource Identifier (URI) and/or aUniform Resource Locator (URL). For instance, in some examples, themedia playback system 100 can stream, download, or otherwise obtain datafrom a URI or a URL corresponding to the received media content. Anetwork 104 communicatively couples the links 103 and at least a portionof the devices (e.g., one or more of the playback devices 110, NMDs 120,and/or control devices 130) of the media playback system 100. Thenetwork 104 can include, for example, a wireless network (e.g., a WiFinetwork, a Bluetooth, a Z-Wave network, a ZigBee, and/or other suitablewireless communication protocol network) and/or a wired network (e.g., anetwork comprising Ethernet, Universal Serial Bus (USB), and/or anothersuitable wired communication). As those of ordinary skill in the artwill appreciate, as used herein, “WiFi” can refer to several differentcommunication protocols including, for example, Institute of Electricaland Electronics Engineers (IEEE) 802.11a, 802.11b, 802.11g, 802.11n,802.11ac, 802.11ac, 802.11ad, 802.11af, 802.11ah, 802.11ai, 802.11aj,802.11aq, 802.11ax, 802.11ay, 802.15, etc. transmitted at 2.4 Gigahertz(GHz), 5 GHz, and/or another suitable frequency.

In some embodiments, the network 104 comprises a dedicated communicationnetwork that the media playback system 100 uses to transmit messagesbetween individual devices and/or to transmit media content to and frommedia content sources (e.g., one or more of the computing devices 106).In certain embodiments, the network 104 is configured to be accessibleonly to devices in the media playback system 100, thereby reducinginterference and competition with other household devices. In otherembodiments, however, the network 104 comprises an existing householdcommunication network (e.g., a household WiFi network). In someembodiments, the links 103 and the network 104 comprise one or more ofthe same networks. In some aspects, for example, the links 103 and thenetwork 104 comprise a telecommunication network (e.g., an LTE network,a 5G network). Moreover, in some embodiments, the media playback system100 is implemented without the network 104, and devices comprising themedia playback system 100 can communicate with each other, for example,via one or more direct or indirect connections, PANs, LANs,telecommunication networks, and/or other suitable communication links.

In some embodiments, audio content sources may be regularly added orremoved from the media playback system 100. In some embodiments, forexample, the media playback system 100 performs an indexing of mediaitems when one or more media content sources are updated, added to,and/or removed from the media playback system 100. The media playbacksystem 100 can scan identifiable media items in some or all foldersand/or directories accessible to the playback devices 110, and generateor update a media content database comprising metadata (e.g., title,artist, album, track length) and other associated information (e.g.,URIs, URLs) for each identifiable media item found. In some embodiments,for example, the media content database is stored on one or more of theplayback devices 110, network microphone devices 120, and/or controldevices 130.

In the illustrated embodiment of FIG. 1B, the playback devices 110 l and110 m comprise a group 107 a. The playback devices 110 l and 110 m canbe positioned in different rooms in a household and be grouped togetherin the group 107 a on a temporary or permanent basis based on user inputreceived at the control device 130 a and/or another control device 130in the media playback system 100. When arranged in the group 107 a, theplayback devices 110 l and 110 m can be configured to play back the sameor similar audio content in synchrony from one or more audio contentsources. In certain embodiments, for example, the group 107 a comprisesa bonded zone in which the playback devices 110 l and 110 m compriseleft audio and right audio channels, respectively, of multi-channelaudio content, thereby producing or enhancing a stereo effect of theaudio content. In some embodiments, the group 107 a includes additionalplayback devices 110. In other embodiments, however, the media playbacksystem 100 omits the group 107 a and/or other grouped arrangements ofthe playback devices 110. Additional details regarding groups and otherarrangements of playback devices are described in further detail belowwith respect to FIGS. 1I through 1M.

The media playback system 100 includes the NMDs 120 a and 120 d, eachcomprising one or more microphones configured to receive voiceutterances from a user. In the illustrated embodiment of FIG. 1B, theNMD 120 a is a standalone device and the NMD 120 d is integrated intothe playback device 110 n. The NMD 120 a, for example, is configured toreceive voice input 121 from a user 123. In some embodiments, the NMD120 a transmits data associated with the received voice input 121 to avoice assistant service (VAS) configured to (i) process the receivedvoice input data and (ii) transmit a corresponding command to the mediaplayback system 100. In some aspects, for example, the computing device106 c comprises one or more modules and/or servers of a VAS (e.g., a VASoperated by one or more of SONOS®, AMAZON®, GOOGLE® APPLE®, MICROSOFT®).The computing device 106 c can receive the voice input data from the NMD120 a via the network 104 and the links 103. In response to receivingthe voice input data, the computing device 106 c processes the voiceinput data (i.e., “Play Hey Jude by The Beatles”), and determines thatthe processed voice input includes a command to play a song (e.g., “HeyJude”). The computing device 106 c accordingly transmits commands to themedia playback system 100 to play back “Hey Jude” by the Beatles from asuitable media service (e.g., via one or more of the computing devices106) on one or more of the playback devices 110.

b. Suitable Playback Devices

FIG. 1C is a block diagram of the playback device 110 a comprising aninput/output 111. The input/output 111 can include an analog I/O 111 a(e.g., one or more wires, cables, and/or other suitable communicationlinks configured to carry analog signals) and/or a digital I/O 111 b(e.g., one or more wires, cables, or other suitable communication linksconfigured to carry digital signals). In some embodiments, the analogI/O 111 a is an audio line-in input connection comprising, for example,an auto-detecting 3.5 mm audio line-in connection. In some embodiments,the digital I/O 111 b comprises a Sony/Philips Digital Interface Format(S/PDIF) communication interface and/or cable and/or a Toshiba Link(TOSLINK) cable. In some embodiments, the digital I/O 111 b comprises aHigh-Definition Multimedia Interface (HDMI) interface and/or cable. Insome embodiments, the digital I/O 111 b includes one or more wirelesscommunication links comprising, for example, a radio frequency (RF),infrared, WiFi, Bluetooth, or another suitable communication protocol.In certain embodiments, the analog I/O 111 a and the digital I/O 111 bcomprise interfaces (e.g., ports, plugs, jacks) configured to receiveconnectors of cables transmitting analog and digital signals,respectively, without necessarily including cables.

The playback device 110 a, for example, can receive media content (e.g.,audio content comprising music and/or other sounds) from a local audiosource 105 via the input/output 111 (e.g., a cable, a wire, a PAN, aBluetooth connection, an ad hoc wired or wireless communication network,and/or another suitable communication link). The local audio source 105can comprise, for example, a mobile device (e.g., a smartphone, atablet, a laptop computer) or another suitable audio component (e.g., atelevision, a desktop computer, an amplifier, a phonograph, a Blu-rayplayer, a memory storing digital media files). In some aspects, thelocal audio source 105 includes local music libraries on a smartphone, acomputer, a networked-attached storage (NAS), and/or another suitabledevice configured to store media files. In certain embodiments, one ormore of the playback devices 110, NMDs 120, and/or control devices 130comprise the local audio source 105. In other embodiments, however, themedia playback system omits the local audio source 105 altogether. Insome embodiments, the playback device 110 a does not include aninput/output 111 and receives all audio content via the network 104.

The playback device 110 a further comprises electronics 112, a userinterface 113 (e.g., one or more buttons, knobs, dials, touch-sensitivesurfaces, displays, touchscreens), and one or more transducers 114(referred to hereinafter as “the transducers 114”). The electronics 112is configured to receive audio from an audio source (e.g., the localaudio source 105) via the input/output 111, one or more of the computingdevices 106 a-c via the network 104 (FIG. 1B), amplify the receivedaudio, and output the amplified audio for playback via one or more ofthe transducers 114. In some embodiments, the playback device 110 aoptionally includes one or more microphones 115 (e.g., a singlemicrophone, a plurality of microphones, a microphone array) (hereinafterreferred to as “the microphones 115”). In certain embodiments, forexample, the playback device 110 a having one or more of the optionalmicrophones 115 can operate as an NMD configured to receive voice inputfrom a user and correspondingly perform one or more operations based onthe received voice input.

In the illustrated embodiment of FIG. 1C, the electronics 112 compriseone or more processors 112 a (referred to hereinafter as “the processors112 a”), memory 112 b, software components 112 c, a network interface112 d, one or more audio processing components 112 g (referred tohereinafter as “the audio components 112 g”), one or more audioamplifiers 112 h (referred to hereinafter as “the amplifiers 112 h”),and power 112 i (e.g., one or more power supplies, power cables, powerreceptacles, batteries, induction coils, Power-over Ethernet (POE)interfaces, and/or other suitable sources of electric power). In someembodiments, the electronics 112 optionally include one or more othercomponents 112 j (e.g., one or more sensors, video displays,touchscreens, battery charging bases).

The processors 112 a can comprise clock-driven computing component(s)configured to process data, and the memory 112 b can comprise acomputer-readable medium (e.g., a tangible, non-transitorycomputer-readable medium, data storage loaded with one or more of thesoftware components 112 c) configured to store instructions forperforming various operations and/or functions. The processors 112 a areconfigured to execute the instructions stored on the memory 112 b toperform one or more of the operations. The operations can include, forexample, causing the playback device 110 a to retrieve audio informationfrom an audio source (e.g., one or more of the computing devices 106 a-c(FIG. 1B)), and/or another one of the playback devices 110. In someembodiments, the operations further include causing the playback device110 a to send audio information to another one of the playback devices110 a and/or another device (e.g., one of the NMDs 120). Certainembodiments include operations causing the playback device 110 a to pairwith another of the one or more playback devices 110 to enable amulti-channel audio environment (e.g., a stereo pair, a bonded zone).

The processors 112 a can be further configured to perform operationscausing the playback device 110 a to synchronize playback of audiocontent with another of the one or more playback devices 110. As thoseof ordinary skill in the art will appreciate, during synchronousplayback of audio content on a plurality of playback devices, a listenerwill preferably be unable to perceive time-delay differences betweenplayback of the audio content by the playback device 110 a and the otherone or more other playback devices 110. Additional details regardingaudio playback synchronization among playback devices can be found, forexample, in U.S. Pat. No. 8,234,395, which was incorporated by referenceabove.

In some embodiments, the memory 112 b is further configured to storedata associated with the playback device 110 a, such as one or morezones and/or zone groups of which the playback device 110 a is a member,audio sources accessible to the playback device 110 a, and/or a playbackqueue that the playback device 110 a (and/or another of the one or moreplayback devices) can be associated with. The stored data can compriseone or more state variables that are periodically updated and used todescribe a state of the playback device 110 a. The memory 112 b can alsoinclude data associated with a state of one or more of the other devices(e.g., the playback devices 110, NMDs 120, control devices 130) of themedia playback system 100. In some aspects, for example, the state datais shared during predetermined intervals of time (e.g., every 5 seconds,every 10 seconds, every 60 seconds) among at least a portion of thedevices of the media playback system 100, so that one or more of thedevices have the most recent data associated with the media playbacksystem 100.

The network interface 112 d is configured to facilitate a transmissionof data between the playback device 110 a and one or more other deviceson a data network such as, for example, the links 103 and/or the network104 (FIG. 1B). The network interface 112 d is configured to transmit andreceive data corresponding to media content (e.g., audio content, videocontent, text, photographs) and other signals (e.g., non-transitorysignals) comprising digital packet data including an Internet Protocol(IP)-based source address and/or an IP-based destination address. Thenetwork interface 112 d can parse the digital packet data such that theelectronics 112 properly receives and processes the data destined forthe playback device 110 a.

In the illustrated embodiment of FIG. 1C, the network interface 112 dcomprises one or more wireless interfaces 112 e (referred to hereinafteras “the wireless interface 112 e”). The wireless interface 112 e (e.g.,a suitable interface comprising one or more antennae) can be configuredto wirelessly communicate with one or more other devices (e.g., one ormore of the other playback devices 110, NMDs 120, and/or control devices130) that are communicatively coupled to the network 104 (FIG. 1B) inaccordance with a suitable wireless communication protocol (e.g., WiFi,Bluetooth, LTE). In some embodiments, the network interface 112 doptionally includes a wired interface 112 f (e.g., an interface orreceptacle configured to receive a network cable such as an Ethernet, aUSB-A, USB-C, and/or Thunderbolt cable) configured to communicate over awired connection with other devices in accordance with a suitable wiredcommunication protocol. In certain embodiments, the network interface112 d includes the wired interface 112 f and excludes the wirelessinterface 112 e. In some embodiments, the electronics 112 excludes thenetwork interface 112 d altogether and transmits and receives mediacontent and/or other data via another communication path (e.g., theinput/output 111).

The audio processing components 112 g are configured to process and/orfilter data comprising media content received by the electronics 112(e.g., via the input/output 111 and/or the network interface 112 d) toproduce output audio signals. In some embodiments, the audio processingcomponents 112 g comprise, for example, one or more digital-to-analogconverters (DAC), audio preprocessing components, audio enhancementcomponents, digital signal processors (DSPs), and/or other suitableaudio processing components, modules, circuits, etc. In certainembodiments, one or more of the audio processing components 112 g cancomprise one or more subcomponents of the processors 112 a. In someembodiments, the electronics 112 omits the audio processing components112 g. In some aspects, for example, the processors 112 a executeinstructions stored on the memory 112 b to perform audio processingoperations to produce the output audio signals.

The amplifiers 112 h are configured to receive and amplify the audiooutput signals produced by the audio processing components 112 g and/orthe processors 112 a. The amplifiers 112 h can comprise electronicdevices and/or components configured to amplify audio signals to levelssufficient for driving one or more of the transducers 114. In someembodiments, for example, the amplifiers 112 h include one or moreswitching or class-D power amplifiers. In other embodiments, however,the amplifiers include one or more other types of power amplifiers(e.g., linear gain power amplifiers, class-A amplifiers, class-Bamplifiers, class-AB amplifiers, class-C amplifiers, class-D amplifiers,class-E amplifiers, class-F amplifiers, class-G and/or class Hamplifiers, and/or another suitable type of power amplifier). In certainembodiments, the amplifiers 112 h comprise a suitable combination of twoor more of the foregoing types of power amplifiers. Moreover, in someembodiments, individual ones of the amplifiers 112 h correspond toindividual ones of the transducers 114. In other embodiments, however,the electronics 112 includes a single one of the amplifiers 112 hconfigured to output amplified audio signals to a plurality of thetransducers 114. In some other embodiments, the electronics 112 omitsthe amplifiers 112 h.

The transducers 114 (e.g., one or more speakers and/or speaker drivers)receive the amplified audio signals from the amplifier 112 h and renderor output the amplified audio signals as sound (e.g., audible soundwaves having a frequency between about 20 Hertz (Hz) and 20 kilohertz(kHz)). In some embodiments, the transducers 114 can comprise a singletransducer. In other embodiments, however, the transducers 114 comprisea plurality of audio transducers. In some embodiments, the transducers114 comprise more than one type of transducer. For example, thetransducers 114 can include one or more low frequency transducers (e.g.,subwoofers, woofers), mid-range frequency transducers (e.g., mid-rangetransducers, mid-woofers), and one or more high frequency transducers(e.g., one or more tweeters). As used herein, “low frequency” cangenerally refer to audible frequencies below about 500 Hz, “mid-rangefrequency” can generally refer to audible frequencies between about 500Hz and about 2 kHz, and “high frequency” can generally refer to audiblefrequencies above 2 kHz. In certain embodiments, however, one or more ofthe transducers 114 comprise transducers that do not adhere to theforegoing frequency ranges. For example, one of the transducers 114 maycomprise a mid-woofer transducer configured to output sound atfrequencies between about 200 Hz and about 5 kHz.

By way of illustration, SONOS, Inc. presently offers (or has offered)for sale certain playback devices including, for example, a “SONOS ONE,”“PLAY:1,” “PLAY:3,” “PLAY:5,” “PLAYBAR,” “PLAYBASE,” “CONNECT:AMP,”“CONNECT,” and “SUB.” Other suitable playback devices may additionallyor alternatively be used to implement the playback devices of exampleembodiments disclosed herein. Additionally, one of ordinary skilled inthe art will appreciate that a playback device is not limited to theexamples described herein or to SONOS product offerings. In someembodiments, for example, one or more playback devices 110 compriseswired or wireless headphones (e.g., over-the-ear headphones, on-earheadphones, in-ear earphones). The headphone may comprise a headbandcoupled to one or more earcups. For example, a first earcup may becoupled to a first end of the headband and a second earcup may becoupled to a second end of the headband that is opposite the first end.Each of the one or more earcups may house any portion of the electroniccomponents in the playback device, such as one or more transducers.Further, the one or more of earcups may include a user interface forcontrolling operation of the headphone such as for controlling audioplayback, volume level, and other functions. The user interface mayinclude any of a variety of control elements such as buttons, knobs,dials, touch-sensitive surfaces, and/or touchscreens. An ear cushion maybe coupled each of the one or more earcups. The ear cushions may providea soft barrier between the head of a user and the one or more earcups toimprove user comfort and/or provide acoustic isolation from the ambient(e.g., provide passive noise reduction (PNR)). Additionally (oralternatively), the headphone may employ active noise reduction (ANR)techniques to further reduce the user's perception of outside noiseduring playback.

In some embodiments, one or more of the playback devices 110 comprise adocking station and/or an interface configured to interact with adocking station for personal mobile media playback devices. In certainembodiments, a playback device may be integral to another device orcomponent such as a television, a lighting fixture, or some other devicefor indoor or outdoor use. In some embodiments, a playback device omitsa user interface and/or one or more transducers. For example, FIG. 1D isa block diagram of a playback device 110 p comprising the input/output111 and electronics 112 without the user interface 113 or transducers114.

FIG. 1E is a block diagram of a bonded playback device 110 q comprisingthe playback device 110 a (FIG. 1C) sonically bonded with the playbackdevice 110 i (e.g., a subwoofer) (FIG. 1A). In the illustratedembodiment, the playback devices 110 a and 110 i are separate ones ofthe playback devices 110 housed in separate enclosures. In someembodiments, however, the bonded playback device 110 q comprises asingle enclosure housing both the playback devices 110 a and 110 i. Thebonded playback device 110 q can be configured to process and reproducesound differently than an unbonded playback device (e.g., the playbackdevice 110 a of FIG. 1C) and/or paired or bonded playback devices (e.g.,the playback devices 110 l and 110 m of FIG. 1B). In some embodiments,for example, the playback device 110 a is full-range playback deviceconfigured to render low frequency, mid-range frequency, and highfrequency audio content, and the playback device 110 i is a subwooferconfigured to render low frequency audio content. In some aspects, theplayback device 110 a, when bonded with the first playback device, isconfigured to render only the mid-range and high frequency components ofa particular audio content, while the playback device 110 i renders thelow frequency component of the particular audio content. In someembodiments, the bonded playback device 110 q includes additionalplayback devices and/or another bonded playback device. Additionalplayback device embodiments are described in further detail below withrespect to FIGS. 2A-3D.

c. Suitable Network Microphone Devices (NMDs)

FIG. 1F is a block diagram of the NMD 120 a (FIGS. 1A and 1B). The NMD120 a includes one or more voice processing components 124 (hereinafter“the voice components 124”) and several components described withrespect to the playback device 110 a (FIG. 1C) including the processors112 a, the memory 112 b, and the microphones 115. The NMD 120 aoptionally comprises other components also included in the playbackdevice 110 a (FIG. 1C), such as the user interface 113 and/or thetransducers 114. In some embodiments, the NMD 120 a is configured as amedia playback device (e.g., one or more of the playback devices 110),and further includes, for example, one or more of the audio processingcomponents 112 g (FIG. 1C), the transducers 114, and/or other playbackdevice components. In certain embodiments, the NMD 120 a comprises anInternet of Things (IoT) device such as, for example, a thermostat,alarm panel, fire and/or smoke detector, etc. In some embodiments, theNMD 120 a comprises the microphones 115, the voice processing 124, andonly a portion of the components of the electronics 112 described abovewith respect to FIG. 1B. In some aspects, for example, the NMD 120 aincludes the processor 112 a and the memory 112 b (FIG. 1B), whileomitting one or more other components of the electronics 112. In someembodiments, the NMD 120 a includes additional components (e.g., one ormore sensors, cameras, thermometers, barometers, hygrometers).

In some embodiments, an NMD can be integrated into a playback device.FIG. 1G is a block diagram of a playback device 110 r comprising an NMD120 d. The playback device 110 r can comprise many or all of thecomponents of the playback device 110 a and further include themicrophones 115 and voice processing 124 (FIG. 1F). The playback device110 r optionally includes an integrated control device 130 c. Thecontrol device 130 c can comprise, for example, a user interface (e.g.,the user interface 113 of FIG. 1B) configured to receive user input(e.g., touch input, voice input) without a separate control device. Inother embodiments, however, the playback device 110 r receives commandsfrom another control device (e.g., the control device 130 a of FIG. 1B).Additional NMD embodiments are described in further detail below withrespect to FIGS. 3A-3F.

Referring again to FIG. 1F, the microphones 115 are configured toacquire, capture, and/or receive sound from an environment (e.g., theenvironment 101 of FIG. 1A) and/or a room in which the NMD 120 a ispositioned. The received sound can include, for example, vocalutterances, audio played back by the NMD 120 a and/or another playbackdevice, background voices, ambient sounds, etc. The microphones 115convert the received sound into electrical signals to produce microphonedata. The voice processing 124 receives and analyzes the microphone datato determine whether a voice input is present in the microphone data.The voice input can comprise, for example, an activation word followedby an utterance including a user request. As those of ordinary skill inthe art will appreciate, an activation word is a word or other audio cuethat signifying a user voice input. For instance, in querying theAMAZON® VAS, a user might speak the activation word “Alexa.” Otherexamples include “Ok, Google” for invoking the GOOGLE® VAS and “Hey,Siri” for invoking the APPLE® VAS.

After detecting the activation word, voice processing 124 monitors themicrophone data for an accompanying user request in the voice input. Theuser request may include, for example, a command to control athird-party device, such as a thermostat (e.g., NEST® thermostat), anillumination device (e.g., a PHILIPS HUE® lighting device), or a mediaplayback device (e.g., a Sonos® playback device). For example, a usermight speak the activation word “Alexa” followed by the utterance “setthe thermostat to 68 degrees” to set a temperature in a home (e.g., theenvironment 101 of FIG. 1A). The user might speak the same activationword followed by the utterance “turn on the living room” to turn onillumination devices in a living room area of the home. The user maysimilarly speak an activation word followed by a request to play aparticular song, an album, or a playlist of music on a playback devicein the home. Additional description regarding receiving and processingvoice input data can be found in further detail below with respect toFIGS. 3A-3F.

d. Suitable Control Devices

FIG. 1H is a partially schematic diagram of the control device 130 a(FIGS. 1A and 1B). As used herein, the term “control device” can be usedinterchangeably with “controller” or “control system.” Among otherfeatures, the control device 130 a is configured to receive user inputrelated to the media playback system 100 and, in response, cause one ormore devices in the media playback system 100 to perform an action(s) oroperation(s) corresponding to the user input. In the illustratedembodiment, the control device 130 a comprises a smartphone (e.g., aniPhone™, an Android phone) on which media playback system controllerapplication software is installed. In some embodiments, the controldevice 130 a comprises, for example, a tablet (e.g., an iPad™), acomputer (e.g., a laptop computer, a desktop computer), and/or anothersuitable device (e.g., a television, an automobile audio head unit, anIoT device). In certain embodiments, the control device 130 a comprisesa dedicated controller for the media playback system 100. In otherembodiments, as described above with respect to FIG. 1G, the controldevice 130 a is integrated into another device in the media playbacksystem 100 (e.g., one more of the playback devices 110, NMDs 120, and/orother suitable devices configured to communicate over a network).

The control device 130 a includes electronics 132, a user interface 133,one or more speakers 134, and one or more microphones 135. Theelectronics 132 comprise one or more processors 132 a (referred tohereinafter as “the processors 132 a”), a memory 132 b, softwarecomponents 132 c, and a network interface 132 d. The processor 132 a canbe configured to perform functions relevant to facilitating user access,control, and configuration of the media playback system 100. The memory132 b can comprise data storage that can be loaded with one or more ofthe software components executable by the processor 302 to perform thosefunctions. The software components 132 c can comprise applicationsand/or other executable software configured to facilitate control of themedia playback system 100. The memory 112 b can be configured to store,for example, the software components 132 c, media playback systemcontroller application software, and/or other data associated with themedia playback system 100 and the user.

The network interface 132 d is configured to facilitate networkcommunications between the control device 130 a and one or more otherdevices in the media playback system 100, and/or one or more remotedevices. In some embodiments, the network interface 132 d is configuredto operate according to one or more suitable communication industrystandards (e.g., infrared, radio, wired standards including IEEE 802.3,wireless standards including IEEE 802.11a, 802.11b, 802.11g, 802.11n,802.11ac, 802.15, 4G, LTE). The network interface 132 d can beconfigured, for example, to transmit data to and/or receive data fromthe playback devices 110, the NMDs 120, other ones of the controldevices 130, one of the computing devices 106 of FIG. 1B, devicescomprising one or more other media playback systems, etc. Thetransmitted and/or received data can include, for example, playbackdevice control commands, state variables, playback zone and/or zonegroup configurations. For instance, based on user input received at theuser interface 133, the network interface 132 d can transmit a playbackdevice control command (e.g., volume control, audio playback control,audio content selection) from the control device 304 to one or more ofplayback devices. The network interface 132 d can also transmit and/orreceive configuration changes such as, for example, adding/removing oneor more playback devices to/from a zone, adding/removing one or morezones to/from a zone group, forming a bonded or consolidated player,separating one or more playback devices from a bonded or consolidatedplayer, among others. Additional description of zones and groups can befound below with respect to FIGS. 1I through 1M.

The user interface 133 is configured to receive user input and canfacilitate control of the media playback system 100. The user interface133 includes media content art 133 a (e.g., album art, lyrics, videos),a playback status indicator 133 b (e.g., an elapsed and/or remainingtime indicator), media content information region 133 c, a playbackcontrol region 133 d, and a zone indicator 133 e. The media contentinformation region 133 c can include a display of relevant information(e.g., title, artist, album, genre, release year) about media contentcurrently playing and/or media content in a queue or playlist. Theplayback control region 133 d can include selectable (e.g., via touchinput and/or via a cursor or another suitable selector) icons to causeone or more playback devices in a selected playback zone or zone groupto perform playback actions such as, for example, play or pause, fastforward, rewind, skip to next, skip to previous, enter/exit shufflemode, enter/exit repeat mode, enter/exit cross fade mode, etc. Theplayback control region 133 d may also include selectable icons tomodify equalization settings, playback volume, and/or other suitableplayback actions. In the illustrated embodiment, the user interface 133comprises a display presented on a touch screen interface of asmartphone (e.g., an iPhone™, an Android phone). In some embodiments,however, user interfaces of varying formats, styles, and interactivesequences may alternatively be implemented on one or more networkdevices to provide comparable control access to a media playback system.

The one or more speakers 134 (e.g., one or more transducers) can beconfigured to output sound to the user of the control device 130 a. Insome embodiments, the one or more speakers comprise individualtransducers configured to correspondingly output low frequencies,mid-range frequencies, and/or high frequencies. In some aspects, forexample, the control device 130 a is configured as a playback device(e.g., one of the playback devices 110). Similarly, in some embodimentsthe control device 130 a is configured as an NMD (e.g., one of the NMDs120), receiving voice commands and other sounds via the one or moremicrophones 135.

The one or more microphones 135 can comprise, for example, one or morecondenser microphones, electret condenser microphones, dynamicmicrophones, and/or other suitable types of microphones or transducers.In some embodiments, two or more of the microphones 135 are arranged tocapture location information of an audio source (e.g., voice, audiblesound) and/or configured to facilitate filtering of background noise.Moreover, in certain embodiments, the control device 130 a is configuredto operate as a playback device and an NMD. In other embodiments,however, the control device 130 a omits the one or more speakers 134and/or the one or more microphones 135. For instance, the control device130 a may comprise a device (e.g., a thermostat, an IoT device, anetwork device) comprising a portion of the electronics 132 and the userinterface 133 (e.g., a touch screen) without any speakers ormicrophones. Additional control device embodiments are described infurther detail below with respect to FIGS. 4A-4D and 5 .

e. Suitable Playback Device Configurations

FIGS. 1I through 1M show example configurations of playback devices inzones and zone groups. Referring first to FIG. 1M, in one example, asingle playback device may belong to a zone. For example, the playbackdevice 110 g in the second bedroom 101 c (FIG. 1A) may belong to Zone C.In some implementations described below, multiple playback devices maybe “bonded” to form a “bonded pair” which together form a single zone.For example, the playback device 110 l (e.g., a left playback device)can be bonded to the playback device 110 l (e.g., a left playbackdevice) to form Zone A. Bonded playback devices may have differentplayback responsibilities (e.g., channel responsibilities). In anotherimplementation described below, multiple playback devices may be mergedto form a single zone. For example, the playback device 110 h (e.g., afront playback device) may be merged with the playback device 110 i(e.g., a subwoofer), and the playback devices 110 j and 110 k (e.g.,left and right surround speakers, respectively) to form a single Zone D.In another example, the playback devices 110 g and 110 h can be mergedto form a merged group or a zone group 108 b. The merged playbackdevices 110 g and 110 h may not be specifically assigned differentplayback responsibilities. That is, the merged playback devices 110 hand 110 i may, aside from playing audio content in synchrony, each playaudio content as they would if they were not merged.

Each zone in the media playback system 100 may be provided for controlas a single user interface (UI) entity. For example, Zone A may beprovided as a single entity named Master Bathroom. Zone B may beprovided as a single entity named Master Bedroom. Zone C may be providedas a single entity named Second Bedroom.

Playback devices that are bonded may have different playbackresponsibilities, such as responsibilities for certain audio channels.For example, as shown in FIG. 1I, the playback devices 110 l and 110 mmay be bonded so as to produce or enhance a stereo effect of audiocontent. In this example, the playback device 110 l may be configured toplay a left channel audio component, while the playback device 110 k maybe configured to play a right channel audio component. In someimplementations, such stereo bonding may be referred to as “pairing.”

Additionally, bonded playback devices may have additional and/ordifferent respective speaker drivers. As shown in FIG. 1J, the playbackdevice 110 h named Front may be bonded with the playback device 110 inamed SUB. The Front device 110 h can be configured to render a range ofmid to high frequencies and the SUB device 110 i can be configuredrender low frequencies. When unbonded, however, the Front device 110 hcan be configured render a full range of frequencies. As anotherexample, FIG. 1K shows the Front and SUB devices 110 h and 110 i furtherbonded with Left and Right playback devices 110 j and 110 k,respectively. In some implementations, the Right and Left devices 110 jand 102 k can be configured to form surround or “satellite” channels ofa home theater system. The bonded playback devices 110 h, 110 i, 110 j,and 110 k may form a single Zone D (FIG. 1M).

Playback devices that are merged may not have assigned playbackresponsibilities, and may each render the full range of audio contentthe respective playback device is capable of. Nevertheless, mergeddevices may be represented as a single UI entity (i.e., a zone, asdiscussed above). For instance, the playback devices 110 a and 110 n themaster bathroom have the single UI entity of Zone A. In one embodiment,the playback devices 110 a and 110 n may each output the full range ofaudio content each respective playback devices 110 a and 110 n arecapable of, in synchrony.

In some embodiments, an NMD is bonded or merged with another device soas to form a zone. For example, the NMD 120 b may be bonded with theplayback device 110 e, which together form Zone F, named Living Room. Inother embodiments, a stand-alone network microphone device may be in azone by itself. In other embodiments, however, a stand-alone networkmicrophone device may not be associated with a zone. Additional detailsregarding associating network microphone devices and playback devices asdesignated or default devices may be found, for example, in previouslyreferenced U.S. patent application Ser. No. 15/438,749.

Zones of individual, bonded, and/or merged devices may be grouped toform a zone group. For example, referring to FIG. 1M, Zone A may begrouped with Zone B to form a zone group 108 a that includes the twozones. Similarly, Zone G may be grouped with Zone H to form the zonegroup 108 b. As another example, Zone A may be grouped with one or moreother Zones C-I. The Zones A-I may be grouped and ungrouped in numerousways. For example, three, four, five, or more (e.g., all) of the ZonesA-I may be grouped. When grouped, the zones of individual and/or bondedplayback devices may play back audio in synchrony with one another, asdescribed in previously referenced U.S. Pat. No. 8,234,395. Playbackdevices may be dynamically grouped and ungrouped to form new ordifferent groups that synchronously play back audio content.

In various implementations, the zones in an environment may be thedefault name of a zone within the group or a combination of the names ofthe zones within a zone group. For example, Zone Group 108 b can beassigned a name such as “Dining+Kitchen”, as shown in FIG. 1M. In someembodiments, a zone group may be given a unique name selected by a user.

Certain data may be stored in a memory of a playback device (e.g., thememory 112 b of FIG. 1C) as one or more state variables that areperiodically updated and used to describe the state of a playback zone,the playback device(s), and/or a zone group associated therewith. Thememory may also include the data associated with the state of the otherdevices of the media system, and shared from time to time among thedevices so that one or more of the devices have the most recent dataassociated with the system.

In some embodiments, the memory may store instances of various variabletypes associated with the states. Variables instances may be stored withidentifiers (e.g., tags) corresponding to type. For example, certainidentifiers may be a first type “a1” to identify playback device(s) of azone, a second type “b1” to identify playback device(s) that may bebonded in the zone, and a third type “c1” to identify a zone group towhich the zone may belong. As a related example, identifiers associatedwith the second bedroom 101 c may indicate that the playback device isthe only playback device of the Zone C and not in a zone group.Identifiers associated with the Den may indicate that the Den is notgrouped with other zones but includes bonded playback devices 110 h-110k. Identifiers associated with the Dining Room may indicate that theDining Room is part of the Dining+Kitchen zone group 108 b and thatdevices 110 b and 110 d are grouped (FIG. 1L). Identifiers associatedwith the Kitchen may indicate the same or similar information by virtueof the Kitchen being part of the Dining+Kitchen zone group 108 b. Otherexample zone variables and identifiers are described below.

In yet another example, the media playback system 100 may variables oridentifiers representing other associations of zones and zone groups,such as identifiers associated with Areas, as shown in FIG. 1M. An areamay involve a cluster of zone groups and/or zones not within a zonegroup. For instance, FIG. 1M shows an Upper Area 109 a including ZonesA-D, and a Lower Area 109 b including Zones E-I. In one aspect, an Areamay be used to invoke a cluster of zone groups and/or zones that shareone or more zones and/or zone groups of another cluster. In anotheraspect, this differs from a zone group, which does not share a zone withanother zone group. Further examples of techniques for implementingAreas may be found, for example, in U.S. application Ser. No. 15/682,506filed Aug. 21, 2017 and titled “Room Association Based on Name,” andU.S. Pat. No. 8,483,853 filed Sep. 11, 2007, and titled “Controlling andmanipulating groupings in a multi-zone media system.” Each of theseapplications is incorporated herein by reference in its entirety. Insome embodiments, the media playback system 100 may not implement Areas,in which case the system may not store variables associated with Areas.

III. Example Systems and Devices

FIG. 2A is a front isometric view of a playback device 210 configured inaccordance with aspects of the disclosed technology. FIG. 2B is a frontisometric view of the playback device 210 without a grille 216 e. FIG.2C is an exploded view of the playback device 210. Referring to FIGS.2A-2C together, the playback device 210 comprises a housing 216 thatincludes an upper portion 216 a, a right or first side portion 216 b, alower portion 216 c, a left or second side portion 216 d, the grille 216e, and a rear portion 216 f. A plurality of fasteners 216 g (e.g., oneor more screws, rivets, clips) attaches a frame 216 h to the housing216. A cavity 216 j (FIG. 2C) in the housing 216 is configured toreceive the frame 216 h and electronics 212. The frame 216 h isconfigured to carry a plurality of transducers 214 (identifiedindividually in FIG. 2B as transducers 214 a-f). The electronics 212(e.g., the electronics 112 of FIG. 1C) is configured to receive audiocontent from an audio source and send electrical signals correspondingto the audio content to the transducers 214 for playback.

The transducers 214 are configured to receive the electrical signalsfrom the electronics 112, and further configured to convert the receivedelectrical signals into audible sound during playback. For instance, thetransducers 214 a-c (e.g., tweeters) can be configured to output highfrequency sound (e.g., sound waves having a frequency greater than about2 kHz). The transducers 214 d-f (e.g., mid-woofers, woofers, midrangespeakers) can be configured output sound at frequencies lower than thetransducers 214 a-c (e.g., sound waves having a frequency lower thanabout 2 kHz). In some embodiments, the playback device 210 includes anumber of transducers different than those illustrated in FIGS. 2A-2C.For example, as described in further detail below with respect to FIGS.3A-3C, the playback device 210 can include fewer than six transducers(e.g., one, two, three). In other embodiments, however, the playbackdevice 210 includes more than six transducers (e.g., nine, ten).Moreover, in some embodiments, all or a portion of the transducers 214are configured to operate as a phased array to desirably adjust (e.g.,narrow or widen) a radiation pattern of the transducers 214, therebyaltering a user's perception of the sound emitted from the playbackdevice 210.

In the illustrated embodiment of FIGS. 2A-2C, a filter 216 i is axiallyaligned with the transducer 214 b. The filter 216 i can be configured todesirably attenuate a predetermined range of frequencies that thetransducer 214 b outputs to improve sound quality and a perceived soundstage output collectively by the transducers 214. In some embodiments,however, the playback device 210 omits the filter 216 i. In otherembodiments, the playback device 210 includes one or more additionalfilters aligned with the transducers 214 b and/or at least another ofthe transducers 214.

FIGS. 3A and 3B are front and right isometric side views, respectively,of an NMD 320 configured in accordance with embodiments of the disclosedtechnology. FIG. 3C is an exploded view of the NMD 320. FIG. 3D is anenlarged view of a portion of FIG. 3B including a user interface 313 ofthe NMD 320. Referring first to FIGS. 3A-3C, the NMD 320 includes ahousing 316 comprising an upper portion 316 a, a lower portion 316 b andan intermediate portion 316 c (e.g., a grille). A plurality of ports,holes or apertures 316 d in the upper portion 316 a allow sound to passthrough to one or more microphones 315 (FIG. 3C) positioned within thehousing 316. The one or more microphones 315 are configured to receivedsound via the apertures 316 d and produce electrical signals based onthe received sound. In the illustrated embodiment, a frame 316 e (FIG.3C) of the housing 316 surrounds cavities 316 f and 316 g configured tohouse, respectively, a first transducer 314 a (e.g., a tweeter) and asecond transducer 314 b (e.g., a mid-woofer, a midrange speaker, awoofer). In other embodiments, however, the NMD 320 includes a singletransducer, or more than two (e.g., two, five, six) transducers. Incertain embodiments, the NMD 320 omits the transducers 314 a and 314 baltogether.

Electronics 312 (FIG. 3C) includes components configured to drive thetransducers 314 a and 314 b, and further configured to analyze audioinformation corresponding to the electrical signals produced by the oneor more microphones 315. In some embodiments, for example, theelectronics 312 comprises many or all of the components of theelectronics 112 described above with respect to FIG. 1C. In certainembodiments, the electronics 312 includes components described abovewith respect to FIG. 1F such as, for example, the one or more processors112 a, the memory 112 b, the software components 112 c, the networkinterface 112 d, etc. In some embodiments, the electronics 312 includesadditional suitable components (e.g., proximity or other sensors).

Referring to FIG. 3D, the user interface 313 includes a plurality ofcontrol surfaces (e.g., buttons, knobs, capacitive surfaces) including afirst control surface 313 a (e.g., a previous control), a second controlsurface 313 b (e.g., a next control), and a third control surface 313 c(e.g., a play and/or pause control). A fourth control surface 313 d isconfigured to receive touch input corresponding to activation anddeactivation of the one or microphones 315. A first indicator 313 e(e.g., one or more light emitting diodes (LEDs) or another suitableilluminator) can be configured to illuminate only when the one or moremicrophones 315 are activated. A second indicator 313 f (e.g., one ormore LEDs) can be configured to remain solid during normal operation andto blink or otherwise change from solid to indicate a detection of voiceactivity. In some embodiments, the user interface 313 includesadditional or fewer control surfaces and illuminators. In oneembodiment, for example, the user interface 313 includes the firstindicator 313 e, omitting the second indicator 313 f Moreover, incertain embodiments, the NMD 320 comprises a playback device and acontrol device, and the user interface 313 comprises the user interfaceof the control device.

Referring to FIGS. 3A-3D together, the NMD 320 is configured to receivevoice commands from one or more adjacent users via the one or moremicrophones 315. As described above with respect to FIG. 1B, the one ormore microphones 315 can acquire, capture, or record sound in a vicinity(e.g., a region within 10 m or less of the NMD 320) and transmitelectrical signals corresponding to the recorded sound to theelectronics 312. The electronics 312 can process the electrical signalsand can analyze the resulting audio data to determine a presence of oneor more voice commands (e.g., one or more activation words). In someembodiments, for example, after detection of one or more suitable voicecommands, the NMD 320 is configured to transmit a portion of therecorded audio data to another device and/or a remote server (e.g., oneor more of the computing devices 106 of FIG. 1B) for further analysis.The remote server can analyze the audio data, determine an appropriateaction based on the voice command, and transmit a message to the NMD 320to perform the appropriate action. For instance, a user may speak“Sonos, play Michael Jackson.” The NMD 320 can, via the one or moremicrophones 315, record the user's voice utterance, determine thepresence of a voice command, and transmit the audio data having thevoice command to a remote server (e.g., one or more of the remotecomputing devices 106 of FIG. 1B, one or more servers of a VAS and/oranother suitable service). The remote server can analyze the audio dataand determine an action corresponding to the command. The remote servercan then transmit a command to the NMD 320 to perform the determinedaction (e.g., play back audio content related to Michael Jackson). TheNMD 320 can receive the command and play back the audio content relatedto Michael Jackson from a media content source. As described above withrespect to FIG. 1B, suitable content sources can include a device orstorage communicatively coupled to the NMD 320 via a LAN (e.g., thenetwork 104 of FIG. 1B), a remote server (e.g., one or more of theremote computing devices 106 of FIG. 1B), etc. In certain embodiments,however, the NMD 320 determines and/or performs one or more actionscorresponding to the one or more voice commands without intervention orinvolvement of an external device, computer, or server.

FIG. 3E is a functional block diagram showing additional features of theNMD 320 in accordance with aspects of the disclosure. The NMD 320includes components configured to facilitate voice command captureincluding voice activity detector component(s) 312 k, beam formercomponents 312 l, acoustic echo cancellation (AEC) and/or self-soundsuppression components 312 m, activation word detector 312 n, andspeech/text conversion components 312 o (e.g., voice-to-text andtext-to-voice). In the illustrated embodiment of FIG. 3E, the foregoingcomponents 312 k-312 o are shown as separate components. In someembodiments, however, one or more of the components 312 k-312 o aresubcomponents of the processors 112 a.

The beamforming and self-sound suppression components 312 l and 312 mare configured to detect an audio signal and determine aspects of voiceinput represented in the detected audio signal, such as the direction,amplitude, frequency spectrum, etc. The voice activity detectorcomponents 312 k are operably coupled with the beamforming and AECcomponents 312 l and 312 m and are configured to determine a directionand/or directions from which voice activity is likely to have occurredin the detected audio signal. Potential speech directions can beidentified by monitoring metrics which distinguish speech from othersounds. Such metrics can include, for example, energy within the speechband relative to background noise and entropy within the speech band,which is measure of spectral structure. As those of ordinary skill inthe art will appreciate, speech typically has a lower entropy than mostcommon background noise. The activation word detector 312 n areconfigured to monitor and analyze received audio to determine if anyactivation words (e.g., wake words) are present in the received audio.The activation word detector 312 n may analyze the received audio usingan activation word detection algorithm. If the activation word detector312 n detects an activation word, the NMD 320 may process voice inputcontained in the received audio. Example activation word detectionalgorithms accept audio as input and provide an indication of whether anactivation word is present in the audio. Many first- and third-partyactivation word detection algorithms are known and commerciallyavailable. For instance, operators of a voice service may make theiralgorithm available for use in third-party devices. Alternatively, analgorithm may be trained to detect certain activation words. In someembodiments, the activation word detector 312 n runs multiple activationword detection algorithms on the received audio simultaneously (orsubstantially simultaneously). As noted above, different voice services(e.g. AMAZON's ALEXA®, APPLE's SIRI®, or MICROSOFT's CORTANA®) can eachuse a different activation word for invoking their respective voiceservice. To support multiple services, the activation word detector 312n may run the received audio through the activation word detectionalgorithm for each supported voice service in parallel.

The speech/text conversion components 312 o may facilitate processing byconverting speech in the voice input to text. In some embodiments, theelectronics 312 can include voice recognition software that is trainedto a particular user or a particular set of users associated with ahousehold. Such voice recognition software may implementvoice-processing algorithms that are tuned to specific voice profile(s).Tuning to specific voice profiles may require less computationallyintensive algorithms than traditional voice activity services, whichtypically sample from a broad base of users and diverse requests thatare not targeted to media playback systems.

FIG. 3F is a schematic diagram of an example voice input 328 captured bythe NMD 320 in accordance with aspects of the disclosure. The voiceinput 328 can include an activation word portion 328 a and a voiceutterance portion 328 b. In some embodiments, the activation word 328 acan be a known activation word, such as “Alexa,” which is associatedwith AMAZON's ALEXA®. In other embodiments, however, the voice input 328may not include an activation word. In some embodiments, a networkmicrophone device may output an audible and/or visible response upondetection of the activation word 328 a. In addition or alternately, anNMB may output an audible and/or visible response after processing avoice input and/or a series of voice inputs.

The voice utterance portion 328 b may include, for example, one or morespoken commands (identified individually as a first command 328 c and asecond command 328 e) and one or more spoken keywords (identifiedindividually as a first keyword 328 d and a second keyword 328 f). Inone example, the first command 328 c can be a command to play music,such as a specific song, album, playlist, etc. In this example, thekeywords may be one or words identifying one or more zones in which themusic is to be played, such as the Living Room and the Dining Room shownin FIG. 1A. In some examples, the voice utterance portion 328 b caninclude other information, such as detected pauses (e.g., periods ofnon-speech) between words spoken by a user, as shown in FIG. 3F. Thepauses may demarcate the locations of separate commands, keywords, orother information spoke by the user within the voice utterance portion328 b.

In some embodiments, the media playback system 100 is configured totemporarily reduce the volume of audio content that it is playing whiledetecting the activation word portion 557 a. The media playback system100 may restore the volume after processing the voice input 328, asshown in FIG. 3F. Such a process can be referred to as ducking, examplesof which are disclosed in U.S. patent application Ser. No. 15/438,749,incorporated by reference herein in its entirety.

FIGS. 4A-4D are schematic diagrams of a control device 430 (e.g., thecontrol device 130 a of FIG. 1H, a smartphone, a tablet, a dedicatedcontrol device, an IoT device, and/or another suitable device) showingcorresponding user interface displays in various states of operation. Afirst user interface display 431 a (FIG. 4A) includes a display name 433a (i.e., “Rooms”). A selected group region 433 b displays audio contentinformation (e.g., artist name, track name, album art) of audio contentplayed back in the selected group and/or zone. Group regions 433 c and433 d display corresponding group and/or zone name, and audio contentinformation audio content played back or next in a playback queue of therespective group or zone. An audio content region 433 e includesinformation related to audio content in the selected group and/or zone(i.e., the group and/or zone indicated in the selected group region 433b). A lower display region 433 f is configured to receive touch input todisplay one or more other user interface displays. For example, if auser selects “Browse” in the lower display region 433 f, the controldevice 430 can be configured to output a second user interface display431 b (FIG. 4B) comprising a plurality of music services 433 g (e.g.,Spotify, Radio by Tunein, Apple Music, Pandora, Amazon, TV, local music,line-in) through which the user can browse and from which the user canselect media content for play back via one or more playback devices(e.g., one of the playback devices 110 of FIG. 1A). Alternatively, ifthe user selects “My Sonos” in the lower display region 433 f, thecontrol device 430 can be configured to output a third user interfacedisplay 431 c (FIG. 4C). A first media content region 433 h can includegraphical representations (e.g., album art) corresponding to individualalbums, stations, or playlists. A second media content region 433 i caninclude graphical representations (e.g., album art) corresponding toindividual songs, tracks, or other media content. If the user selectionsa graphical representation 433 j (FIG. 4C), the control device 430 canbe configured to begin play back of audio content corresponding to thegraphical representation 433 j and output a fourth user interfacedisplay 431 d that includes an enlarged version of the graphicalrepresentation 433 j, media content information 433 k (e.g., track name,artist, album), transport controls 433 m (e.g., play, previous, next,pause, volume), and indication 433 n of the currently selected groupand/or zone name.

FIG. 5 is a schematic diagram of a control device 530 (e.g., a laptopcomputer, a desktop computer). The control device 530 includestransducers 534, a microphone 535, and a camera 536. A user interface531 includes a transport control region 533 a, a playback zone region533 b, a playback zone region 533 c, a playback queue region 533 d, anda media content source region 533 e. The transport control regioncomprises one or more controls for controlling media playback including,for example, volume, previous, play/pause, next, repeat, shuffle, trackposition, crossfade, equalization, etc. The media content source region533 e includes a listing of one or more media content sources from whicha user can select media items for play back and/or adding to a playbackqueue.

The playback zone region 533 b can include representations of playbackzones within the media playback system 100 (FIGS. 1A and 1B). In someembodiments, the graphical representations of playback zones may beselectable to bring up additional selectable icons to manage orconfigure the playback zones in the media playback system, such as acreation of bonded zones, creation of zone groups, separation of zonegroups, renaming of zone groups, etc. In the illustrated embodiment, a“group” icon is provided within each of the graphical representations ofplayback zones. The “group” icon provided within a graphicalrepresentation of a particular zone may be selectable to bring upoptions to select one or more other zones in the media playback systemto be grouped with the particular zone. Once grouped, playback devicesin the zones that have been grouped with the particular zone can beconfigured to play audio content in synchrony with the playbackdevice(s) in the particular zone. Analogously, a “group” icon may beprovided within a graphical representation of a zone group. In theillustrated embodiment, the “group” icon may be selectable to bring upoptions to deselect one or more zones in the zone group to be removedfrom the zone group. In some embodiments, the control device 530includes other interactions and implementations for grouping andungrouping zones via the user interface 531. In certain embodiments, therepresentations of playback zones in the playback zone region 533 b canbe dynamically updated as a playback zone or zone group configurationsare modified.

The playback status region 533 c includes graphical representations ofaudio content that is presently being played, previously played, orscheduled to play next in the selected playback zone or zone group. Theselected playback zone or zone group may be visually distinguished onthe user interface, such as within the playback zone region 533 b and/orthe playback queue region 533 d. The graphical representations mayinclude track title, artist name, album name, album year, track length,and other relevant information that may be useful for the user to knowwhen controlling the media playback system 100 via the user interface531.

The playback queue region 533 d includes graphical representations ofaudio content in a playback queue associated with the selected playbackzone or zone group. In some embodiments, each playback zone or zonegroup may be associated with a playback queue containing informationcorresponding to zero or more audio items for playback by the playbackzone or zone group. For instance, each audio item in the playback queuemay comprise a uniform resource identifier (URI), a uniform resourcelocator (URL) or some other identifier that may be used by a playbackdevice in the playback zone or zone group to find and/or retrieve theaudio item from a local audio content source or a networked audiocontent source, possibly for playback by the playback device. In someembodiments, for example, a playlist can be added to a playback queue,in which information corresponding to each audio item in the playlistmay be added to the playback queue. In some embodiments, audio items ina playback queue may be saved as a playlist. In certain embodiments, aplayback queue may be empty, or populated but “not in use” when theplayback zone or zone group is playing continuously streaming audiocontent, such as Internet radio that may continue to play untilotherwise stopped, rather than discrete audio items that have playbackdurations. In some embodiments, a playback queue can include Internetradio and/or other streaming audio content items and be “in use” whenthe playback zone or zone group is playing those items.

When playback zones or zone groups are “grouped” or “ungrouped,”playback queues associated with the affected playback zones or zonegroups may be cleared or re-associated. For example, if a first playbackzone including a first playback queue is grouped with a second playbackzone including a second playback queue, the established zone group mayhave an associated playback queue that is initially empty, that containsaudio items from the first playback queue (such as if the secondplayback zone was added to the first playback zone), that contains audioitems from the second playback queue (such as if the first playback zonewas added to the second playback zone), or a combination of audio itemsfrom both the first and second playback queues. Subsequently, if theestablished zone group is ungrouped, the resulting first playback zonemay be re-associated with the previous first playback queue, or beassociated with a new playback queue that is empty or contains audioitems from the playback queue associated with the established zone groupbefore the established zone group was ungrouped. Similarly, theresulting second playback zone may be re-associated with the previoussecond playback queue, or be associated with a new playback queue thatis empty, or contains audio items from the playback queue associatedwith the established zone group before the established zone group wasungrouped.

FIG. 6 is a message flow diagram illustrating data exchanges betweendevices of the media playback system 100 (FIGS. 1A-1M).

At step 650 a, the media playback system 100 receives an indication ofselected media content (e.g., one or more songs, albums, playlists,podcasts, videos, stations) via the control device 130 a. The selectedmedia content can comprise, for example, media items stored locally onor more devices (e.g., the audio source 105 of FIG. 1C) connected to themedia playback system and/or media items stored on one or more mediaservice servers (one or more of the remote computing devices 106 of FIG.1B). In response to receiving the indication of the selected mediacontent, the control device 130 a transmits a message 651 a to theplayback device 110 a (FIGS. 1A-1C) to add the selected media content toa playback queue on the playback device 110 a.

At step 650 b, the playback device 110 a receives the message 651 a andadds the selected media content to the playback queue for play back.

At step 650 c, the control device 130 a receives input corresponding toa command to play back the selected media content. In response toreceiving the input corresponding to the command to play back theselected media content, the control device 130 a transmits a message 651b to the playback device 110 a causing the playback device 110 a to playback the selected media content. In response to receiving the message651 b, the playback device 110 a transmits a message 651 c to the firstcomputing device 106 a requesting the selected media content. The firstcomputing device 106 a, in response to receiving the message 651 c,transmits a message 651 d comprising data (e.g., audio data, video data,a URL, a URI) corresponding to the requested media content.

At step 650 d, the playback device 110 a receives the message 651 d withthe data corresponding to the requested media content and plays back theassociated media content.

At step 650 e, the playback device 110 a optionally causes one or moreother devices to play back the selected media content. In one example,the playback device 110 a is one of a bonded zone of two or more players(FIG. 1M). The playback device 110 a can receive the selected mediacontent and transmit all or a portion of the media content to otherdevices in the bonded zone. In another example, the playback device 110a is a coordinator of a group and is configured to transmit and receivetiming information from one or more other devices in the group. Theother one or more devices in the group can receive the selected mediacontent from the first computing device 106 a, and begin playback of theselected media content in response to a message from the playback device110 a such that all of the devices in the group play back the selectedmedia content in synchrony.

IV. Overview of Example Embodiments

As described above, older playback devices may eventually becomeincapable of operating in certain modes, such as a group coordinatormode, a group member mode, and/or a standalone mode, that may directlyimpact the ability of such playback devices to perform one or more corefunctions (e.g., playback audio from a streaming media service).Accordingly, certain functions may be offloaded from those olderplayback devices to a more capable device so as to maintain a core levelof functionality expected by an end user. In such instances, the olderplayback devices may function in a lite mode variant of one or moremodes (e.g., group coordinator mode, a group member mode, and/or astandalone mode) that has a lesser computational burden. Further,another device and/or system that is more computationally capable thanthe older playback device may operate in a super mode variant of one ormore modes (e.g., group coordinator mode, a group member mode, and/or astandalone mode) that has a higher computational burden.

FIG. 7 shows an example configuration of a media playback group 700configured for synchronous playback of media. As shown, the playbackgroup 700 comprises a first device (e.g., a first playback device)operating in a group coordinator mode, referred to as group coordinator710, and a second device (e.g., a second playback device) operating in agroup member mode, referred to as group member 714. Although theplayback group 700 shows only a single group member 714, embodiments caninclude two, three, four, five, or many more group members (not shown).The playback group 700 may receive the media for playback from a mediasource 704. The media source 704 may comprise any of the media sourcesdisclosed herein, including but not limited to streaming media sourcesavailable via the Internet or any other source of media content nowknown or later developed. The media information 740 may comprise any ofthe media content disclosed herein, including but not limited tostreaming media content available via the Internet from streaming mediasources.

In operation, the group coordinator 710 (i) receives media information740 from the media source 704 via a communications link between themedia source 704 and the group coordinator 710, (ii) provides mediainformation 742 to the group member 714 (and possibly additionalplayback devices (not shown)), and (iii) plays media content based onthe media information 742 in synchrony with the group member 714 (andpossibly additional playback devices (not shown)).

In some instances, the group coordinator 710 receives the stream ofpackets comprising the media information 740 (which may or may not beencoded) from the media source 704 and extracts the media information740 from the incoming stream on a packet-by-packet basis. That is, whenthe group coordinator 710 receives a first packet comprising the mediainformation 740 from the media source 704, the group coordinator 710extracts the portion(s) of media information 740 contained within thatpacket. The group coordinator 710 continues to extract the mediainformation 740 from the packets as they arrive (or substantially asthey arrive) on a packet-by-packet basis (or frame-by-frame orcell-by-cell, depending on how the media information 740 is packaged).

While the group coordinator 710 continues to receive the first stream ofdata comprising the media information 740 (i.e., the incoming stream)and extract the media information 740 from the incoming stream, thegroup coordinator 710 generates and transmits a second stream of data(i.e., the outgoing stream) comprising portions of extracted mediainformation 742 to at least the group member 714 (and perhaps also toadditional playback devices (not shown)). In example 700, the groupcoordinator 710 transmits the second stream (the outgoing stream)comprising portions of extracted media information 742 to the groupmember 714 via a LAN such as a WLAN (e.g., a WIFI network). However, thesecond stream could be transmitted by any type of communications linknow known or later developed that is suitable for transmitting data. Insome embodiments, the group coordinator 710 (i) receives the incomingstream from the media source 704 via a first communication interface(e.g., an interface configured to facilitate communication via at leastone cellular network such as an LTE or 5G network and/or at least onePAN), and (ii) transmits the outgoing stream to at least the groupmember 714 via a second communication interface (e.g., an interfaceconfigured to facilitate communication via at least one WLAN) that isdifferent than the first wireless interface. In other embodiments, thegroup coordinator 710 receives the incoming stream from the media source704 and (ii) transmits the outgoing stream to at least the group member714 via a single communication interface (e.g., an interface configuredto facilitate communication via at least one WLAN).

In operation, the outgoing stream comprises (i) portions of the mediainformation extracted from the incoming stream and (ii) playback timinginformation, wherein the playback timing information comprises playbacktiming for the portions of the media information extracted from theincoming stream. In some embodiments, the outgoing stream mayadditionally comprise clock timing information. In some embodiments,however, the group coordinator 710 may transmit clock timing informationto the group member 714 separately from the outgoing stream.

In particular, in addition to the portions of media information 742, thegroup coordinator 710 also transmits playback timing information 744 forthe portions of the media information 742 and clock timing information746 to the group member 714 (and perhaps additional playback devices(not shown)). In operation, the group coordinator 710 uses the playbacktiming information 744 and the clock timing information 746 to playmedia content based on the media information 742 in synchrony with atleast the group member 714 as described herein.

In the playback group 700, and in connection with generating theoutgoing stream, the group coordinator 710 uses its own clock timinginformation 746 (i.e., clock timing of a clock of the group coordinator710) to generate the playback timing information 744 for the mediainformation 742.

In some embodiments, the group coordinator 710 generates the playbacktiming information 744 for the media information 742 by adding a “timingadvance” to a current clock time of the local reference clock that thegroup coordinator 710 uses for generating the playback timinginformation 744 for the media information 742. In some embodiments, theplayback timing for a frame or packet of media information 742corresponds to a future time, relative to a reference clock time, thatthe portion(s) of media information 742 in the packet (or frame) is tobe played.

In some embodiments, the timing advance that the group coordinator 710adds to its own clock timing information 746 to generate a future timefor the playback timing information 744 is based on an amount of timethat is greater than or equal to the sum of (i) the network transit timerequired for packets transmitted from the group coordinator 710 toarrive at the group member 714 and (ii) the amount of time required forthe group member 714 to process received packets for playback.

In some embodiments, the group coordinator 710 determines the timingadvance by sending one or more test packets to the group member 714 andreceiving test response packets back from the group member 714 inresponse to the test packets. In some embodiments, the group coordinator710 and the group member 714 can negotiate a timing advance via one ormore test and response messages. In some embodiments with more than twoplayback devices, the group coordinator 710 determines the timingadvance by exchanging test and response messages with one or more (orall) of the playback devices, and then setting a timing advance that issufficient for the playback device having the longest total of networktransmit time and packet processing time.

In some embodiments, the timing advance is less than about 100milliseconds. In some embodiments, the timing advance is less than about50-80 milliseconds. And in still further embodiments, the timing advanceis less than about 20 milliseconds. In some embodiments, the timingadvance remains constant after being determined, or at least constantduring the duration of a synchronous playback session or perhapsconstant during the duration that the synchrony group is in existence orin a particular configuration (recall that synchrony groups can beformed, changed, disbanded, etc.).

In other embodiments, the group coordinator 710 can change the timingadvance in response to a request from a receiving playback deviceindicating that (i) a greater timing advance is required, e.g., becausethe receiving playback device is receiving packets comprising portionsof media information 742 after the time for playing the portions(specified by the playback timing information 744 for the portions ofmedia information 742), or because the receiving playback device isreceiving portions of media information 742 after other devices havealready played the portions of media information, or (ii) a shortertiming advance would be sufficient, e.g., because the receiving deviceis buffering more packets comprising portions of media information thannecessary to provide consistent, reliable playback.

After determining the playback timing information 744 for a packet,frame, and/or sample of the media information 742, the group coordinator710 transmits the packet/frame/sample of media information 742 and theplayback timing information 744 for the packet/frame/sample of mediainformation 742 to the group member 714. Because in the playback group700, the group coordinator 710 uses its own local clock timing togenerate the playback timing information 744 for the media information742, the group coordinator 710 also transmits its clock timinginformation 746 to the group member 714.

The group member 714 uses the clock timing information 746 of the groupcoordinator 710 and the second playback device's 706 own clock timing togenerate a “timing offset.” Because the group member 714 uses theplayback timing information 744 and the clock timing information 746received from the group coordinator 710 to play the media information742, the group member 714 in this instance uses remote playback timingand remote clock timing to play media content based on the mediainformation 742.

In some embodiments, one or more (or all) of the following steps occurin connection with the group member 714 generating the “timing offset”based the clock timing information 746 of the group coordinator 710 andthe second playback device's 706 own clock timing.

First, the group coordinator 710 generates a clock timing indication(e.g., a timestamp or other indication) at time, t, and transmits thatclock timing indication to the group member 714 (e.g., as part and/orall of the clock timing information 746). Next, when the group member714 receives the clock timing indication from the group coordinator 710,the group member 714 determines the difference between a local clock atthe group member 714 and the time, t, indicated in the clock timingindication. The group member 714 uses this determined “timing offset” toplay back media content based on portions of media information 742 insynchrony with the group coordinator 710.

In some embodiments, the group coordinator 710 transmits the clocktiming information 746 to the group member 714 at least once at thestart of a synchronous playback session. In some embodiments, becauseclocks at the group coordinator 710 and the group member 714 aresusceptible to clock drift (e.g., frequency and/or phase drift), thegroup coordinator 710 transmits the clock timing information 746 to thegroup member 714 periodically or at least more than a few times duringthe course of a synchronous playback session. For example, the groupcoordinator 710 may transmit the clock timing information 746 to thegroup member 714 every few milliseconds, every few tens of milliseconds,every few hundreds of milliseconds, every few seconds, every fewminutes, and so on.

After transmitting at least some frames (or packets) comprising at leastportions of the media information 742, the playback timing information744, and the clock timing information 746 to the group member 714, thegroup coordinator 710 and the group member 714 perform the followingfunctions to play back media content in synchrony with each other.

The group coordinator 710 plays an individual frame (or packet)comprising portions of the media information 742 when the local clock atthe group coordinator 710 that was used for generating the playbacktiming information 744 reaches the time specified in the playback timinginformation 744 for that individual frame (or packet) comprising themedia information 742. For example, recall that when generating playbacktiming for an individual frame (or packet), the “sourcing” playbackdevice (i.e., the group coordinator 710 in FIG. 7 ) adds a “timingadvance” to the current clock time of the local reference clock used forgenerating the playback timing. So, if the timing advance for anindividual frame is, for example, 30 milliseconds, then the groupcoordinator 710 ultimately plays media content corresponding to theportion (e.g., a sample or set of samples) of media information 742 inan individual frame (or packet) 30 milliseconds after creating theplayback timing for that individual frame (or packet).

And the group member 714 plays media content corresponding to the mediainformation 742 in each frame (or packet) when the current time of alocal clock (at the group member 714) that the group member 714 is usingto play the media information 742 reaches the playback timinginformation 744 for that frame (or packet), taking into account thepreviously-determined “timing offset.”

Recall that the group member 714 calculates (or otherwise determines) a“timing offset” that corresponds to a difference between (a) the“reference” clock at the group coordinator 710 that the groupcoordinator 710 used to generate the clock timing information 746 (andthe playback timing information 744) and (b) the “local” clock at thegroup member 714 that the group member 714 uses to play the mediainformation 742. The group member 714 uses this timing offset whenplaying back media content based on the media information 742.

In particular, the group member 714 generates new playback timing(specific to the group member 714) for individual frames (or packets) ofmedia information 742 by adding the previously determined “timingoffset” to the playback time of each frame (or packet) received from thegroup coordinator 710. With this approach, the group member 714 convertsthe playback timing information 744 for the media information 742received from the group coordinator 710 into “local” playback timing forthe group member 714. And when the “local” clock that the group member714 is using for playing back the media content reaches the determined“local” playback time for an individual frame (or packet), the groupmember 714 plays the media information 742 (or portions thereof)associated with that individual frame (or packet). As described above,in some embodiments, the playback timing for a particular frame (orpacket) is in the header of the frame (or packet). In other embodiments,the playback timing for individual frames (or packets) is transmittedseparately from the frames (or packets) comprising the media content.

Because the group coordinator 710 plays media content corresponding toframes (or packets) comprising portions of the media information 742according to the playback timing information 744, and because the groupmember 714 also plays media content corresponding to frames (or packets)comprising portions of the media information 742 according to the sameplayback timing information 744 and the timing offset, the media contentplayed by the group coordinator 710 and the media content played bygroup member 714 are played in synchrony with each other. That is, thegroup coordinator 710 and the group member 714 play media content insynchrony with each other based on the playback timing information 744and clock timing information 746.

As discussed above, certain older devices may no longer be capable ofoperating as a group coordinator or a group member as described abovewith respect to FIG. 7 . Instead, such devices may join a media playbackgroup where those older devices may operate in a lite mode that is lesscomputationally burdensome, such as operating in a lite group membermode (e.g., supported by a more computationally capable device operatingas a super group coordinator). For instance, the media playback systemmay detect that a request has been received (e.g., from a user via acontroller) to form a synchrony group that comprises one or moreplayback devices that fail to meet one or more threshold level(s) ofcomputational capability (e.g., insufficient processor capability (e.g.,insufficient number of cores, insufficient floating point operations persecond, insufficient clock speed, and/or insufficient cache size),insufficient volatile memory capability (e.g., insufficient capacity,insufficient bandwidth, and/or insufficient clock speed), and/orinsufficient non-volatile memory capability (e.g., insufficientcapacity, insufficient bandwidth, and/or insufficient clock speed)). Insuch an instance, the media playback system may automatically identifyone or more playback devices in the synchrony group that exceed the oneor more threshold level(s) of computational capability to function as asuper group coordinator for the synchrony group such that the one ormore playback devices in the synchrony group that fail to meet the oneor more threshold level(s) of computational capability can function in alite group member mode. Should the synchrony group only compriseplayback devices that fail to meet the one or more threshold level(s) ofcomputational capability, the media playback system may automaticallyadd another device and/or system to the synchrony group to function asthe super group coordinator. In such an instance where another deviceand/or system is added to the synchrony group to function as the supergroup coordinator, that device and/or system may not render the audiobeing provided to the lite group members such that only the playbackdevices selected by the user to be part of the synchrony group renderthe audio.

FIG. 8 shows an example configuration of such a media playback group800. The media playback group 800 is configured for synchronous playbackof media from media source 704. As shown, the media playback group 800comprises a first device and/or system operating in a super groupcoordinator mode, referred to as a super group coordinator 810, and oneor more devices operating in a lite group member mode, referred to aslite group members 814A-814C. Although the media playback group 800shows only three lite group members 814, embodiments can include one,two, four, five, or many more group members (not shown).

In operation, the super group coordinator 810 obtains media information740 from the media source 704 and facilitates synchronous playback ofthe media information 740 across the lite group members 814A-814C via asynchronization engine 811. To facilitate synchronous playback, thesynchronization engine 811 may generate (and output) playback timinginformation 803A, 803B, and 803C to each of the lite group members814A-814C, respectively. In some instances, the synchronization engine811 may generate and output the playback timing information 803A, 803B,and 803C using similar (or the same) techniques as described above withrespect to the group coordinator 710. Additionally, the synchronizationengine 811 may output media information 805A-805C (or a derivativethereof) to the lite group members 814A-814C that is to be played back.

It should be appreciated that the super group coordinator 810 need notplayback the audio in synchrony with the lite group members 814A-814C.For instance, the super group coordinator 810 may be implemented as oneor more cloud servers (e.g., in a data center) that are remote relativeto the lite group members 814A-814C. In such an instance, the one ormore cloud servers need not render the audio. In another instance, thesuper group coordinator 810 may be a modern playback device in ahousehold that was not selected by the user for synchronous playback(e.g., the user only selected the three players functioning as litegroup members 814A-814C to playback in synchrony). In this instance, thesuper group coordinator 810 also need not render the audio.

The super group coordinator 810 may perform one or more additionaloperations relative to a group coordinator described above to reduce acomputational burden on the lite group members 814A-814C. For instance,the super group coordinator 810 (e.g., via the synchronization engine811) may facilitate compensation for a difference in clock rates of thelite group members 814A-814C (e.g., which would otherwise result in thelite group members 814A-814C playing back media at different rates(e.g., have different playback rates)). Without compensation, suchdiffering playback rates may eventually become noticeable to a user(e.g., playback gaps form, echoes form, etc.).

In some examples, the synchronization engine 811 may receive playbackrate information 801A-801C from the lite group members 814A-814C. Forinstance, the lite group members 814A-814C may transmit one or moremessages to the super group coordinator 810 when particular points inthe media content are reached for playback (e.g., when each of the 30second, 1 minute, 1 minute and 30 second marks in a 2 minute audio trackare reached). The synchronization engine 811 may employ such a stream ofmessages from the lite group members 814A-814C to identify differencesin playback rates relative to a reference playback rate. Thus, the taskof identifying differences in playback rate may be shifted to the supergroup coordinator 810 to advantageously reduce the computational burdenon the lite group members 814A-814C. It should be appreciated that thereference playback rate may be, in some instances, the playback rate ofone of the lite group members (e.g., lite group member 814A). In otherinstances, the reference playback rate may be a playback rate determinedby a source that is separate from the lite group members 814A-814C.

The synchronization engine 811 may employ the determined differences inplayback rates to make one or more playback adjustments to reduce suchdifferences in playback rates. In some instances, the synchronizationengine 811 may identify an appropriate modified sampling rate for atleast some of the lite group members to reduce the variance in playbackrates. For example, a particular lite group member 814B may be playingback audio too quickly and the synchronization engine 811 may identify amodified sample rate for a given piece of media that is higher than theoriginal sample rate of the media (so as to slow the playback rate givena relatively constant rate at which individual samples are played back).Such a modified sample rate may be achieved using, for example,asynchronous SRC.

It should be appreciated that the particular system and/or device thatgenerates the media content at the modified sample rate may vary basedon the particular implementation and/or the particular capabilities of agive lite group member. In some instances, asynchronous SRC may beperformed by the super group coordinator 810 via a sample rate converter813 to generate modified media information 809 that may be, in turn,transmitted to the lite group member 814B for playback. In suchinstances, the synchronization engine 811 may output the determinedmodified sample rate 807 to the sample rate converter 813 and the mediainformation 805B that is to be modified. In turn, the sample rateconverter 813 may convert the same rate of the received mediainformation 805B to match the modified sample rate 807. The sample rateconverter 813 may modify the sample rate on-the-fly using asynchronousSRC. Alternatively (or additionally), the sample rate converter 813 mayhave access to stored media that already has modified sample rate andselect the stored media with a sufficiently close (e.g., within athreshold distance and/or exactly matches) the modified sample rate 807.Thus, the sample rate converter 813 may not need to perform asynchronousSRC to output the media information at the modified sample rate.

In other instances, the asynchronous SRC may be performed by the litegroup member (e.g., as shown with lite group member 814C). For instance,the synchronization engine 811 may communicate a determined modifiedplayback rate 812 to the lite group member 814C that, in turn, the litegroup member 814C may employ to modify the sample rate of the incomingmedia information 805A.

It should be appreciated that one or more elements shown in FIG. 8 maybe implemented using software executed by one or more processors. Forexample, the synchronization engine 811 may be implemented via one ormore computer programs that may be executed by one or more processors.Additionally (or alternatively), the sample rate converter 813 may beimplemented via one or more computer programs that may be executed byone or more processors.

FIG. 9 shows an example method 900 of operating a device (and/or system)in a super group coordinator mode (e.g., an example method of operatingthe super group coordinator 810 in FIG. 8 ). As shown, the method 900comprises an act 902 of receiving a request to initiate synchronousplayback, an act 904 of identifying the server(s) to serve the request,an act 906 of identifying the capabilities of the playback device(s), anact 908 of obtaining media content, an act 910 of generating playbacktiming information, an act 912 of transmitting media content and/orplayback timing information, an act 914 of receiving playback rateinformation, an act 916 of determining playback rate error information,and an act 918 of causing the playback devices to reduce playback rateerror.

In act 902, the super group coordinator receives a request to initiatesynchronous playback. The request to initiate synchronous playback maycomprise one or more of the following: (1) an indication of whichplayback devices(s) to include in the synchrony group; (2) an indicationof the channels to be reproduced by one or more playback devices in thesynchrony group (e.g., two players should playback as a stereo pair withleft and right channels or the two players should playback all channelsof the media content); (3) an indication of the media content to beplayed back (e.g., a unique identifier associated with a particularpiece of media content, such as a string of characters which may behuman readable (e.g., name of a song) or non-human readable (e.g., arandom set of characters associated with a particular song)); and/or (4)an indication of the media source from which the media content should beobtained. The request to initiate synchronous playback may originatefrom any of a variety of sources. In some instances, the request mayoriginate from a user device (e.g., in response to user manipulation ofa user interface on the user device). In other instances, the requestmay originate from a network microphone device via a voice command(e.g., an utterance is detected by the network microphone device thatcontains a command to playback media on a certain set of one or moreplayback devices).

In instances where the super group coordinator is implemented using aset of one or more cloud servers, the super group coordinator mayidentify one or more server(s) to serve the request in act 904. Forexample, the request to initiate synchronous playback may be received bya cloud server system that comprises numerous servers across multiplegeographic locations. In this example, one or more of the servers withinthe cloud server system may make a determination as to which serverswithin the cloud server system should serve the request. Such adetermination may be made based on any of a variety of criteriaincluding, for example, one or more of the following: (1) user accountinformation associated with a user from which the request originated(e.g., certain users with a higher status and/or pay a subscription mayget preferential access to certain servers, such as servers close totheir geographic location, servers with higher computationalcapabilities, and/or servers with a lower existing workload); (2) acurrent workload of the servers (e.g., route requests to servers withless ongoing activity to balance the workload); and (3) a geographiclocation (e.g., included in the request explicitly or implicitly via,for example, a WAN Internet Protocol (IP) Address) of one or moreplayback devices identified in the request (e.g., identify a set ofservers that are located at a data center that is closest geographicallyto the one or more playback devices).

In some instances where the super group coordinator supports multiplevariations of a lite group member mode, the super group coordinator mayidentify the capabilities of the playback device in act 906. Forexample, the super group coordinator may support a first lite groupmember mode where the super group coordinator performs asynchronous SRC(e.g., the super group coordinator sends media content to the playbackdevice that has a modified sampling rate) and a second lite group membermode where the lite group member handles the asynchronous SRC (e.g., thesuper group coordinator sends media content to the playback device at anunmodified sample rate and an indication of how the sample rate shouldbe modified). In this example, the super group coordinator may assign arole (e.g., operate in a first lite group member mode or a second litegroup member mode) based on the capabilities of that playback device.For instance, the super group coordinator may identify the computationalcapabilities of the playback device(s) in the request (e.g., memorycapacity, processing capability, etc.) and assign each of the playbackdevices one of the variants of the lite group member modes based ontheir computational capabilities (e.g., playback devices with highercomputational capability may be assigned variants of the lite groupmember modes that perform more complex functions while playback deviceswith lesser computational capability may be assigned variants of thelite group member modes that perform less complex functions).

In act 908, the super group coordinator may obtain the media content.The super group coordinator may obtain the media content in any of avariety of ways. For example, the request may specify a particular mediasource from which the media content should be obtained. In this example,the super group coordinator may obtain the media content from the mediasource specified in the request. In another example, the request may notspecify the media source from which the media content should beobtained. In this example, super group coordinator may: (1) identify oneor more media sources to which a user associated with the request (e.g.,the user that initiated the request) has access to; (2) identify whichof one or more media sources that the user has access to include therequested media content; and (3) obtain the media content from the mediasource that the user has access to and includes the requested mediacontent. In instances where multiple media sources are available (e.g.,the user has access to multiple media sources that each includes therequested media content), the super group coordinator may select onemedia source from the multiple available media sources based on any of avariety of information including, for example, user preferenceinformation (e.g., user prefers to use a first media streaming serviceover a second) and/or system preference information (e.g., preference touse a media source operated by the same company as the company thatmanufactured and/or sold the playback devices functioning as lite groupmembers).

In act 910, the super group coordinator may generate playback timinginformation. For example, the super group coordinator may generate theplayback timing information by identifying a future time at which one ormore portions of the media content should be played back. Such a futuretime may be a “timing advance” relative to a current clock time of areference clock (e.g., a local or remote reference clock). In someinstances, the timing advance that the super group coordinator adds tothe reference clock is based on an amount of time that is greater thanor equal to the sum of (i) the network transit time required for packetstransmitted from the super group coordinator to arrive at the lite groupmember(s) and (ii) the amount of time required for the lite groupmember(s) to process received packets for playback.

It should be appreciated that the super group coordinator and the litegroup member may negotiate a timing advance based on one or more networkconditions (e.g., network latency, network bandwidth, network jitter,etc.) associated with the network over which the super group coordinatorcommunicates with the playback devices and generate the playback timinginformation at least in part on those identified one or more networkconditions. For example, the super group coordinator and/or the litegroup member may exchange one or more test and response messages toassess one or more network conditions. For instance, in some embodimentswith more than two playback devices, the super group coordinator maydetermine the timing advance by exchanging test and response messageswith one or more (or all) of the lite group members, and then set atiming advance that is sufficient for the lite group member having thelongest total of network transmit time and packet processing time.

In act 912, the super group coordinator may transmit the media contentand/or the playback timing information to the one or more playbackdevices identified in the request.

In act 914, the super group coordinator may receive playback rateinformation (e.g., from one or more of the playback devices identifiedin the request and/or playing back the media content). The playback rateinformation may comprise, for example, an indication of a rate at whicha playback device is playing back media content. The playback rateinformation may comprise, for example, a series of messages from aplayback device when the playback device renders a particular section ofmedia (e.g., the playback device transmits a message when particularpoints within the media content are reached for playback). Such messagesmay be periodic (e.g., every second, ten seconds, 30 seconds, minute,etc.) or aperiodic.

In act 916, the super group coordinator may determine playback rateerror information. For instance, the super group coordinator may,directly or indirectly, determine a difference between the playback rateof one or more playback devices using the playback rate information anda reference playback rate. For example, the super group coordinator mayidentify a reference playback rate and, based on that reference playbackrate, determine a modified sampling rate for one or more playbackdevices using the received playback rate information such that aplayback rate of the one or more playback devices more closely matches(e.g., is within a threshold range of and/or exactly matches) thereference playback rate. The super group coordinator may select theplayback rate of one of the playback devices as the reference playbackdevice (e.g., so as to obviate a need to compute a modified samplingrate for one of the playback devices).

In act 918, the super group coordinator may cause the playback device(s)to reduce the playback rate error. For example, the super groupcoordinator may cause the playback devices to playback at a modifiedsampling rate (e.g., so as to have a playback rate that closely matchesthe reference playback rate). For instance, the super group coordinatormay modify a sample rate of the media content (e.g., using asynchronousSRC) being transmitted to a particular playback device based on thedetermined modified sample rate associated with that particular playbackdevice. In another example, the super group coordinator may transmit anindication of the determined modified sample rate to the playback deviceand the playback device may perform asynchronous SRC to modify a samplerate of the media content being played back based on the receivedmodified sample rate.

It should be appreciated that one or more acts in method 900 may berepeated, omitted, or otherwise modified without departing from thescope of the present disclosure. For example, one or more of acts 910,912, 914, 916, and/or 918 may be repeated throughout a duration ofplayback of the media content. Additionally (or alternatively), one ormore of the acts 904 and/or 906 may be omitted altogether. For example,act 904 may be omitted in situations where the super group coordinatoris implemented using a single device that is on the same local networkas the playback devices. In another example, act 906 may be omitted ininstances where the super group coordinator only supports a singlevariant of lite group member mode.

FIG. 10 shows an example method 1000 of operating a device in a litegroup member mode (e.g., an example method of operating one or more ofthe lite group members 814A-814C in FIG. 8 ). As shown, the method 1000comprises an act 1002 of receiving media content and playback timinginformation, an act 1004 of receiving playback rate error information,an act 1006 of converting a sample rate of the media content, an act1008 of playing back the media content based on the playback timinginformation, an act 1010 of generating playback rate information, and anact 1012 of transmitting playback rate information.

In act 1002, the lite group member may receive media content andplayback timing information. The lite group member may receive the mediacontent and the playback timing information from the same device and/orsystem (e.g., from a super group coordinator) or from different devicesand/or systems (e.g., receive the playback timing from the super groupcoordinator and the media content directly from a media source).

In some instances, the lite group member may receive playback rate errorinformation in act 1004. The lite group member may receive the playbackrate error information from, for example, the super group coordinator.For example, the lite group member may receive an indication of adifference between its current playback rate and a reference playbackrate. In another example, the lite group member may receive anindication of a modified sample rate to use for asynchronous sample rateconversion so as to reduce a playback rate error between the playbackdevice and the reference playback rate.

In act 1006, the lite group member may convert a sample rate of themedia content based on, for example, the playback rate errorinformation. For example, the playback rate error information maycomprise a modified sample rate to use for asynchronous SRC and the litegroup member may modify a sample rate of the media content based on thereceived modified sample rate.

In act 1008, the lite group member may playback the media content basedon the playback timing information. For example, the lite group membermay start playback particular portions of the media content when aparticular point-in-time is reached (e.g., a point-in-time indicated inthe playback timing information and/or derived from the playback timinginformation).

It should be appreciated that the lite group member may playback themedia content at an unmodified sample rate (e.g., the sample rate atwhich the media content was received) and/or a modified sample rate(e.g., the modified sample rate generated in act 1006).

In act 1010, the lite group member may generate playback rateinformation. The lite group member may transmit the generated playbackrate information (e.g., to the super group coordinator) in act 1012.Such playback rate information may be generated and transmitted to thesuper group coordinator in any of a variety of ways. In some instances,the lite group member may transmit one or more messages to the supergroup coordinator when particular points in the media content arereached for playback. Such points may be evenly spaced (e.g., every 30second interval in the media content) or unevenly spaced within themedia content. In other instances, markers may be integrated into themedia content that are played back (e.g., at a frequency that isinaudible to humans) and detected via one or more microphones in theplayback device. In such instances, the playback device may transmit amessage to the super group coordinator each time one or more markers aredetected.

It should be appreciated that one or more acts in method 1000 may berepeated, omitted, or otherwise modified without departing from thescope of the present disclosure. For example, one or more of acts 1002,1004, 1006, 1008, 1010, and/or 1012 may be repeated throughout aduration of playback of the media content. Additionally (oralternatively), one or more of the acts 1004 and/or 1006 may be omittedaltogether.

V. Conclusion

The above discussions relating to playback devices, controller devices,playback zone configurations, and media/audio content sources provideonly some examples of operating environments within which functions andmethods described below may be implemented. Other operating environmentsand configurations of media playback systems, playback devices, andnetwork devices not explicitly described herein may also be applicableand suitable for implementation of the functions and methods.

The description above discloses, among other things, various examplesystems, methods, apparatus, and articles of manufacture including,among other components, firmware and/or software executed on hardware.It is understood that such examples are merely illustrative and shouldnot be considered as limiting. For example, it is contemplated that anyor all of the firmware, hardware, and/or software aspects or componentscan be embodied exclusively in hardware, exclusively in software,exclusively in firmware, or in any combination of hardware, software,and/or firmware. Accordingly, the examples provided are not the onlyways) to implement such systems, methods, apparatus, and/or articles ofmanufacture.

Additionally, references herein to “embodiment” means that a particularfeature, structure, or characteristic described in connection with theembodiment can be included in at least one example embodiment of aninvention. The appearances of this phrase in various places in thespecification are not necessarily all referring to the same embodiment,nor are separate or alternative embodiments mutually exclusive of otherembodiments. As such, the embodiments described herein, explicitly andimplicitly understood by one skilled in the art, can be combined withother embodiments.

The specification is presented largely in terms of illustrativeenvironments, systems, procedures, steps, logic blocks, processing, andother symbolic representations that directly or indirectly resemble theoperations of data processing devices coupled to networks. These processdescriptions and representations are typically used by those skilled inthe art to most effectively convey the substance of their work to othersskilled in the art. Numerous specific details are set forth to provide athorough understanding of the present disclosure. However, it isunderstood to those skilled in the art that certain embodiments of thepresent disclosure can be practiced without certain, specific details.In other instances, well known methods, procedures, components, andcircuitry have not been described in detail to avoid unnecessarilyobscuring aspects of the embodiments. Accordingly, the scope of thepresent disclosure is defined by the appended claims rather than theforegoing description of embodiments.

When any of the appended claims are read to cover a purely softwareand/or firmware implementation, at least one of the elements in at leastone example is hereby expressly defined to include a tangible,non-transitory medium such as a memory, DVD, CD, Blu-ray, and so on,storing the software and/or firmware.

Example Features

(Feature 1) A computing system comprising: a communication interfaceconfigured to facilitate communication via at least one Wide AreaNetwork (WAN); at least one processor; at least one non-transitorycomputer-readable medium; program instructions stored on the at leastone non-transitory computer-readable medium that are executable by theat least one processor such that the computing system is configured to:receive, via a WAN, a request to initiate synchronous playback of mediacontent on a plurality of playback devices; obtain the media contentfrom a media source; generate playback timing information associatedwith the media content; transmit, via the WAN, the media content and theplayback timing information to the plurality of playback devices forplayback in synchrony; while the plurality of playback devices playbackthe media content in synchrony, receive, via the WAN, playback rateinformation from each of the plurality of playback devices indicative ofa rate of playback of the respective playback device; and determine amodified sample rate of the media content for at least one playbackdevice of the plurality of playback devices based on the playback rateinformation received from each of the plurality of playback devices; andcause the at least one playback device to playback the media content atthe modified sample rate to maintain synchrony between the plurality ofplayback devices.

(Feature 2) The computing system of feature 1, wherein the modifiedsample rate of the media content is not an integer multiple of aninitial sample rate of the media content.

(Feature 3) The computing system of any of features 1-2, wherein causingthe at least one playback device to playback the media content at themodified sample rate comprises: modifying the sampling rate of the mediacontent based on the modified sample rate; and transmitting, via theWAN, the media content with the modified sample rate to the at least oneplayback device.

(Feature 4) The computing system of any of features 1-2, wherein causingthe at least one playback device to playback the media content at themodified sample rate comprises: transmitting, via the WAN, the mediacontent (e.g., at an initial sample rate) and an indication of themodified sample rate to the at least one playback device.

(Feature 5) The computing system of any of features 1-2, wherein causingthe at least one playback device to playback the media content at themodified sample rate comprises: determining a computational capabilityof the at least one playback device (e.g., capability of a processor(e.g., number of cores, floating point operations per second, clockspeed, cache size, etc.), volatile memory (e.g., capacity, bandwidth,clock speed, etc.), and/or non-volatile memory (e.g., capacity,bandwidth, clock speed, etc.)); and causing the at least one playbackdevice to playback the media content at the modified sample rate basedon the determined computational capability of the at least one playbackdevice.

(Feature 6) The computing system of feature 5, wherein causing the atleast one playback device to playback the media content at the modifiedsample rate based on the determined computational capability of the atleast one playback device comprises: when the computational capabilityof the at least one playback device exceeds a threshold, transmitting,via the WAN, the media content (e.g., at an initial sample rate) and anindication of the modified sample rate to the at least one playbackdevice.

(Feature 7) The computing system of any of features 5-6, wherein causingthe at least one playback device to playback the media content at themodified sample rate comprises: when the computational capability of theat least one playback device does not exceed a threshold, modifying thesampling rate of the media content using asynchronous sample rateconversion based on the modified sample rate; and transmitting, via theWAN, the media content with the modified sample rate to the at least oneplayback device.

(Feature 8) The computing system of any of features 1-7, wherein thecomputing system comprises at least one cloud server.

(Feature 9) The computing system of any of features 1-8, wherein thecomputing system does not playback the media content.

(Feature 10) A playback device having a plurality of modes of operation,wherein the playback device comprises: a communication interfaceconfigured to facilitate communication over at least one network; atleast one audio amplifier configured to drive at least one transducer;at least one processor; at least one non-transitory computer-readablemedium; and program instructions stored on the at least onenon-transitory computer-readable medium that are executable by the atleast one processor such that the playback device is configured to: (a)while the playback device operates in a first mode (e.g., a lite groupmember mode), (i) receive audio content and playback timing informationfrom at least one external device that does not playback the audiocontent; (ii) playback the audio content in synchrony with at least onesecond playback device using the playback timing information; (iii)generate playback rate information; and (iv) transmit the playback rateinformation to the at least one external device that does not playbackthe audio content (e.g., a super group coordinator); (b) while theplayback device operates in a second mode (e.g., a group member mode) ofthe plurality of modes, (i) receive audio content and playback timingfor the audio content from at least one second device; (ii) play theaudio content in synchrony with at least the second playback devicebased on the estimated clock rate error, the second clock timinginformation, and the playback timing for the audio content; and (c)while the playback device operates in a third mode (e.g., a groupcoordinator mode) of the plurality of modes, (i) receive audio contentfrom an audio source; (ii) generate playback timing information for theaudio content; (iii) transmit portions of the audio content and playbacktiming information for the portions of the audio content to at least asecond playback device; and (iv) playback the audio content in synchronywith at least the second playback device using the playback timinginformation.

(Feature 11) A playback device having a plurality of modes of operation,wherein the playback device comprises: a communication interfaceconfigured to facilitate communication over at least one network; atleast one audio amplifier configured to drive at least one transducer;at least one processor; at least one non-transitory computer-readablemedium; and program instructions stored on the at least onenon-transitory computer-readable medium that are executable by the atleast one processor such that the playback device is configured to: (a)while the playback device operates in a first mode (e.g., a lite groupmember mode), (i) receive audio content and playback timing informationfrom at least one external device that does not playback the audiocontent; (ii) playback the audio content in synchrony with at least onesecond playback device using the playback timing information; (iii)generate playback rate information; and (iv) transmit the playback rateinformation to the at least one external device that does not playbackthe audio content (e.g., a super group coordinator); and (b) while theplayback device operates in a second mode (e.g., a group member mode) ofthe plurality of modes, (i) receive audio content and playback timingfor the audio content from at least one second device; and (ii) play theaudio content in synchrony with at least the second playback devicebased on the estimated clock rate error, the second clock timinginformation, and the playback timing for the audio content.

(Feature 12) A computing system comprising: a communication interfaceconfigured to facilitate communication via at least one data network; atleast one processor; at least one non-transitory computer-readablemedium; program instructions stored on the at least one non-transitorycomputer-readable medium that are executable by the at least oneprocessor such that the computing system is configured to: after receiptof a request to initiate synchronous playback of media content on aplurality of playback devices via the communication interface, obtainthe media content from a media source; generate playback timinginformation associated with the media content; transmit, via thecommunication interface, the media content and the playback timinginformation to the plurality of playback devices for playback insynchrony; while the plurality of playback devices playback the mediacontent in synchrony and after receipt of playback rate information fromat least one of the plurality of playback devices indicative of a rateof playback of the respective playback device, (i) determine a modifiedsample rate of the media content for the at least one playback devicebased on the playback rate information; and (ii) cause the at least oneplayback device to playback the media content at the modified samplerate to maintain synchrony between the plurality of playback devices.

(Feature 13) The computing system of feature 12, wherein the modifiedsample rate of the media content is not an integer multiple of aninitial sample rate of the media content.

(Feature 14) The computing system of feature 13, wherein the programinstructions that are executable by the at least one processor such thatthe system is configured to cause the at least one playback device toplayback the media content at the modified sample rate comprises programinstructions that are executable by the at least one processor such thatthe system is configured to: modify the sampling rate of the mediacontent based on the modified sample rate; and transmit the mediacontent with the modified sample rate to the at least one playbackdevice.

(Feature 15) The computing system of feature 13, wherein the programinstructions that are executable by the at least one processor such thatthe system is configured to cause the at least one playback device toplayback the media content at the modified sample rate comprises programinstructions that are executable by the at least one processor such thatthe system is configured to: transmit the media content and anindication of the modified sample rate to the at least one playbackdevice.

(Feature 16) The computing system of feature 12, wherein the programinstructions that are executable by the at least one processor such thatthe system is configured to cause the at least one playback device toplayback the media content at the modified sample rate comprises programinstructions that are executable by the at least one processor such thatthe system is configured to: determine a computational capability of theat least one playback device (e.g., capability of a processor (e.g.,number of cores, floating point operations per second, clock speed,cache size, etc.), volatile memory (e.g., capacity, bandwidth, clockspeed, etc.), and/or non-volatile memory (e.g., capacity, bandwidth,clock speed, etc.)); and cause the at least one playback device toplayback the media content at the modified sample rate based on thedetermined computational capability of the at least one playback device.

(Feature 17) The computing system of feature 16, wherein the programinstructions that are executable by the at least one processor such thatthe system is configured to cause the at least one playback device toplayback the media content at the modified sample rate based on thedetermined computational capability of the at least one playback devicecomprises program instructions that are executable by the at least oneprocessor such that the system is configured to: when the computationalcapability of the at least one playback device exceeds a threshold,transmit the media content and an indication of the modified sample rateto the at least one playback device.

(Feature 18) The computing system of feature 16, wherein the programinstructions that are executable by the at least one processor such thatthe system is configured to cause the at least one playback device toplayback the media content at the modified sample rate comprises programinstructions that are executable by the at least one processor such thatthe system is configured to: when the computational capability of the atleast one playback device does not exceed a threshold, modify thesampling rate of the media content using asynchronous sample rateconversion based on the modified sample rate; and transmit the mediacontent with the modified sample rate to the at least one playbackdevice.

(Feature 19) The computing system of feature 12, wherein the computingsystem comprises at least one cloud server.

(Feature 20) The computing system of feature 12, wherein the computingsystem does not playback the media content.

(Feature 21) The computing system of feature 12, wherein the computingsystem and the plurality of playback devices are connected to a LocalArea Network (LAN) and wherein the program instructions that areexecutable by the at least one processor such that the system isconfigured to transmit the media content and the playback timinginformation comprises program instructions that are executable by the atleast one processor such that the system is configured to transmit themedia content and the playback timing information over the LAN.

(Feature 22) One or more non-transitory computer-readable mediacomprising program instructions that are executable by at least oneprocessor such that a system is configured to: after receipt of arequest to initiate synchronous playback of media content on a pluralityof playback devices, obtain the media content from a media source;generate playback timing information associated with the media content;transmit the media content and the playback timing information to theplurality of playback devices for playback in synchrony; while theplurality of playback devices playback the media content in synchronyand after receipt of playback rate information from at least one of theplurality of playback devices indicative of a rate of playback of therespective playback device, (i) determine a modified sample rate of themedia content for the at least one playback device based on the playbackrate information; and (ii) cause the at least one playback device toplayback the media content at the modified sample rate to maintainsynchrony between the plurality of playback devices.

(Feature 23) The one or more non-transitory computer-readable media offeature 22, wherein the modified sample rate of the media content is notan integer multiple of an initial sample rate of the media content.

(Feature 24) The one or more non-transitory computer-readable media offeature 23, wherein the program instructions that are executable by theat least one processor such that the system is configured to cause theat least one playback device to playback the media content at themodified sample rate comprises program instructions that are executableby the at least one processor such that the system is configured to:modify the sampling rate of the media content based on the modifiedsample rate; and transmit the media content with the modified samplerate to the at least one playback device.

(Feature 25) The one or more non-transitory computer-readable media offeature 23, wherein the program instructions that are executable by theat least one processor such that the system is configured to cause theat least one playback device to playback the media content at themodified sample rate comprises program instructions that are executableby the at least one processor such that the system is configured to:transmit the media content and an indication of the modified sample rateto the at least one playback device.

(Feature 26) The one or more non-transitory computer-readable media offeature 22, wherein the program instructions that are executable by theat least one processor such that the system is configured to cause theat least one playback device to playback the media content at themodified sample rate comprises program instructions that are executableby the at least one processor such that the system is configured to:determine a computational capability of the at least one playback device(e.g., capability of a processor (e.g., number of cores, floating pointoperations per second, clock speed, cache size, etc.), volatile memory(e.g., capacity, bandwidth, clock speed, etc.), and/or non-volatilememory (e.g., capacity, bandwidth, clock speed, etc.)); and cause the atleast one playback device to playback the media content at the modifiedsample rate based on the determined computational capability of the atleast one playback device.

(Feature 27) The one or more non-transitory computer-readable media offeature 26, wherein the program instructions that are executable by theat least one processor such that the system is configured to cause theat least one playback device to playback the media content at themodified sample rate based on the determined computational capability ofthe at least one playback device comprises program instructions that areexecutable by the at least one processor such that the system isconfigured to: when the computational capability of the at least oneplayback device exceeds a threshold, transmit the media content and anindication of the modified sample rate to the at least one playbackdevice.

(Feature 28) The one or more non-transitory computer-readable media offeature 26, wherein the program instructions that are executable by theat least one processor such that the system is configured to cause theat least one playback device to playback the media content at themodified sample rate comprises program instructions that are executableby the at least one processor such that the system is configured to:when the computational capability of the at least one playback devicedoes not exceed a threshold, modify the sampling rate of the mediacontent using asynchronous sample rate conversion based on the modifiedsample rate; and transmit the media content with the modified samplerate to the at least one playback device.

(Feature 29) A method performed by a computing system, the methodcomprising: receiving a request to initiate synchronous playback ofmedia content on a plurality of playback devices via the communicationinterface; obtaining the media content from a media source; generatingplayback timing information associated with the media content;transmitting the media content and the playback timing information tothe plurality of playback devices for playback in synchrony; while theplurality of playback devices playback the media content in synchronyand after receipt of playback rate information from at least one of theplurality of playback devices indicative of a rate of playback of therespective playback device, (i) determining a modified sample rate ofthe media content for the at least one playback device based on theplayback rate information; and (ii) causing the at least one playbackdevice to playback the media content at the modified sample rate tomaintain synchrony between the plurality of playback devices.

(Feature 30) The method of feature 29, wherein causing the at least oneplayback device to playback the media content at the modified samplerate comprises: modifying the sampling rate of the media content basedon the modified sample rate; and transmitting the media content with themodified sample rate to the at least one playback device.

(Feature 31) The method of feature 29, wherein causing the at least oneplayback device to playback the media content at the modified samplerate comprises: transmitting the media content and an indication of themodified sample rate to the at least one playback device.

The invention claimed is:
 1. A computing system comprising: acommunication interface configured to facilitate communication via atleast one data network; at least one processor; at least onenon-transitory computer-readable medium; program instructions stored onthe at least one non-transitory computer-readable medium that areexecutable by the at least one processor such that the computing systemis configured to: after receipt of a request to initiate synchronousplayback of media content on a plurality of playback devices via thecommunication interface, obtain the media content from a media source;generate respective playback timing information that is to be used byeach of the plurality of playback devices to play back the media contentin synchrony; transmit, via the communication interface, the mediacontent and the respective playback timing information to each of theplurality of playback devices for playback of the media content insynchrony; while the plurality of playback devices play back the mediacontent in synchrony and after receipt of respective playback rateinformation from each of the plurality of playback devices indicative ofa rate of playback of the media content by the playback device, identifya variance between a first playback rate of a first playback device ofthe plurality of playback devices and a second playback rate of a secondplayback device of the plurality of playback devices, wherein the secondplayback rate matches a reference playback rate; determine a modifiedsample rate of the media content for the first playback device based onthe respective playback rate information of the first and secondplayback devices and the reference playback rate; and cause the firstplayback device to play back the media content at the modified samplerate to maintain synchrony of playback of the media content between theplurality of playback devices.
 2. The computing system of claim 1,wherein the modified sample rate of the media content is not an integermultiple of an initial sample rate of the media content.
 3. Thecomputing system of claim 2, wherein the program instructions that areexecutable by the at least one processor such that the computing systemis configured to cause the first playback device to play back the mediacontent at the modified sample rate comprise program instructions thatare executable by the at least one processor such that the computingsystem is configured to: modify the sampling rate of the media contentbased on the modified sample rate; and transmit the media content withthe modified sample rate to the first playback device.
 4. The computingsystem of claim 2, wherein the program instructions that are executableby the at least one processor such that the computing system isconfigured to cause the first playback device to play back the mediacontent at the modified sample rate comprise program instructions thatare executable by the at least one processor such that the computingsystem is configured to: transmit the media content and an indication ofthe modified sample rate to the first playback device.
 5. The computingsystem of claim 1, wherein the program instructions that are executableby the at least one processor such that the computing system isconfigured to cause the first playback device to play back the mediacontent at the modified sample rate comprise program instructions thatare executable by the at least one processor such that the computingsystem is configured to: determine a computational capability of thefirst playback device; and cause the first playback device to play backthe media content at the modified sample rate based on the determinedcomputational capability of the first playback device.
 6. The computingsystem of claim 5, wherein the program instructions that are executableby the at least one processor such that the computing system isconfigured to cause the first playback device to play back the mediacontent at the modified sample rate based on the determinedcomputational capability of the first playback device comprise programinstructions that are executable by the at least one processor such thatthe computing system is configured to: when the computational capabilityof the first playback device exceeds a threshold, transmit the mediacontent and an indication of the modified sample rate to the firstplayback device.
 7. The computing system of claim 5, wherein the programinstructions that are executable by the at least one processor such thatthe computing system is configured to cause the first playback device toplay back the media content at the modified sample rate comprise programinstructions that are executable by the at least one processor such thatthe computing system is configured to: when the computational capabilityof the first playback device does not exceed a threshold: modify thesampling rate of the media content using asynchronous sample rateconversion based on the modified sample rate; and transmit the mediacontent with the modified sample rate to the first playback device. 8.The computing system of claim 1, wherein the computing system comprisesat least one cloud server.
 9. The computing system of claim 1, whereinthe computing system does not play back the media content.
 10. Thecomputing system of claim 1, wherein the computing system and theplurality of playback devices are connected to a Local Area Network(LAN), and wherein the program instructions that are executable by theat least one processor such that the computing system is configured totransmit the media content and the respective playback timinginformation comprise program instructions that are executable by the atleast one processor such that the computing system is configured totransmit the media content and the respective playback timinginformation over the LAN.
 11. One or more non-transitorycomputer-readable media comprising program instructions that areexecutable by at least one processor such that a computing system isconfigured to: after receipt of a request to initiate synchronousplayback of media content on a plurality of playback devices, obtain themedia content from a media source; generate respective playback timinginformation that is to be used by each of the plurality of playbackdevices to play back the media content in synchrony; transmit the mediacontent and the respective playback timing information to each of theplurality of playback devices for playback of the media content insynchrony; while the plurality of playback devices play back the mediacontent in synchrony and after receipt of respective playback rateinformation from each of the plurality of playback devices indicative ofa rate of playback of the media content by the playback device, identifya variance between a first playback rate of a first playback device ofthe plurality of playback devices and a second playback rate of a secondplayback device of the plurality of playback devices, wherein the secondplayback rate matches a reference playback rate; determine a modifiedsample rate of the media content for the first playback device based onthe respective playback rate information of the first and secondplayback devices and the reference playback rate; and cause the firstplayback device to play back the media content at the modified samplerate to maintain synchrony of playback of the media content between theplurality of playback devices.
 12. The one or more non-transitorycomputer-readable media of claim 11, wherein the modified sample rate ofthe media content is not an integer multiple of an initial sample rateof the media content.
 13. The one or more non-transitorycomputer-readable media of claim 12, wherein the program instructionsthat are executable by the at least one processor such that thecomputing system is configured to cause the first playback device toplay back the media content at the modified sample rate comprise programinstructions that are executable by the at least one processor such thatthe computing system is configured to: modify the sampling rate of themedia content based on the modified sample rate; and transmit the mediacontent with the modified sample rate to the first playback device. 14.The one or more non-transitory computer-readable media of claim 12,wherein the program instructions that are executable by the at least oneprocessor such that the computing system is configured to cause thefirst playback device to play back the media content at the modifiedsample rate comprise program instructions that are executable by the atleast one processor such that the computing system is configured to:transmit the media content and an indication of the modified sample rateto the first playback device.
 15. The one or more non-transitorycomputer-readable media of claim 11, wherein the program instructionsthat are executable by the at least one processor such that thecomputing system is configured to cause the first playback device toplay back the media content at the modified sample rate comprise programinstructions that are executable by the at least one processor such thatthe computing system is configured to: determine a computationalcapability of the first playback device; and cause the first playbackdevice to play back the media content at the modified sample rate basedon the determined computational capability of the first playback device.16. The one or more non-transitory computer-readable media of claim 15,wherein the program instructions that are executable by the at least oneprocessor such that the computing system is configured to cause thefirst playback device to play back the media content at the modifiedsample rate based on the determined computational capability of thefirst playback device comprise program instructions that are executableby the at least one processor such that the computing system isconfigured to: when the computational capability of the first playbackdevice exceeds a threshold, transmit the media content and an indicationof the modified sample rate to the first playback device.
 17. The one ormore non-transitory computer-readable media of claim 15, wherein theprogram instructions that are executable by the at least one processorsuch that the computing system is configured to cause the first playbackdevice to play back the media content at the modified sample ratecomprise program instructions that are executable by the at least oneprocessor such that the computing system is configured to: when thecomputational capability of the first playback device does not exceed athreshold: modify the sampling rate of the media content usingasynchronous sample rate conversion based on the modified sample rate;and transmit the media content with the modified sample rate to thefirst playback device.
 18. A method performed by a computing system, themethod comprising: receiving a request to initiate synchronous playbackof media content on a plurality of playback devices via a communicationinterface; obtaining the media content from a media source; generatingrespective playback timing information that is to be used by each of theplurality of playback devices to play back the media content insynchrony; transmitting the media content and the respective playbacktiming information to each of the plurality of playback devices forplayback of the media content in synchrony; while the plurality ofplayback devices play back the media content in synchrony and afterreceipt of respective playback rate information from each of theplurality of playback devices indicative of a rate of playback of themedia content by the playback device, identifying a variance between afirst playback rate of a first playback device of the plurality ofplayback devices and a second playback rate of a second playback deviceof the plurality of playback devices, wherein the second playback ratematches a reference playback rate; determining a modified sample rate ofthe media content for the first playback device based on the respectiveplayback rate information of the first and second playback devices andthe reference playback rate; and causing the first playback device toplayback the media content at the modified sample rate to maintainsynchrony of playback of the media content between the plurality ofplayback devices.
 19. The method of claim 18, wherein causing the firstplayback device to play back the media content at the modified samplerate comprises: modifying the sampling rate of the media content basedon the modified sample rate; and transmitting the media content with themodified sample rate to the first playback device.
 20. The method ofclaim 18, wherein causing the first playback device to play back themedia content at the modified sample rate comprises: transmitting themedia content and an indication of the modified sample rate to the firstplayback device.